複数パッケージのインストール

Windows インストーラーでは、"トランザクション処理" を使用して複数のパッケージをインストールできます。 この機能は、Windows インストーラー 4.5 以降で使用できます。 インストーラーでは、複数パッケージ トランザクションに属するすべてのパッケージをインストールします。またはそれらのパッケージを 1 つもインストールしない場合もあります。 トランザクションのすべてのパッケージを正常にインストールできない場合、またはユーザーがインストールを取り消した場合、Windows インストーラーでは変更をロールバックし、コンピューターを元の状態に復元できます。

複数パッケージのインストール パッケージには、MsiBeginTransactionMsiJoinTransactionMsiEndTransaction 関数を使用するユーザー定義関数を参照する MsiEmbeddedChainer テーブルを含めることができます。

MsiPackageCertificate テーブルには、複数パッケージのインストールを行うインストール パッケージの ID の検証に使用されるデジタル署名証明書が一覧表示されます。 このテーブルを使用すると、複数パッケージのインストールで、管理者による応答が必要な "ユーザー アカウント制御" (UAC) のプロンプトが表示される回数を減らすことができます。

次の Windows インストーラー関数を使用すると、Windows インストーラーでアプリケーションがインストール、修復、更新、または削除されるときに、ユーザーのコンピューターに変更を加えることができます。 Windows インストーラー 4.5 以降では、複数パッケージのインストールの "トランザクション処理" 中にこれらの関数によって行われた変更を、インストーラーを使用してロールバックできます。

MsiAdvertiseProduct
MsiAdvertiseProductEx
MsiApplyMultiplePatches
MsiApplyPatch
MsiConfigureFeature
MsiConfigureProduct
MsiConfigureProductEx
MsiInstallMissingComponent
MsiInstallMissingFile
MsiInstallProduct
MsiProvideAssembly
MsiProvideComponent
MsiProvideQualifiedComponent
MsiProvideQualifiedComponentEx
MsiReinstallFeature
MsiReinstallProduct
MsiRemovePatches

Windows インストーラーで ForceReboot または ScheduleReboot アクションを含む複数パッケージのインストールに属するパッケージが検出された場合、例外が生じます。 この場合、Windows インストーラーでは、そのパッケージのみはインストールしません。 複数パッケージのインストールに属し、ForceReboot または ScheduleReboot アクションを含んでいない他のパッケージはインストールできます。

** Windows インストーラー 4.0 以前:** 複数パッケージの Windows インストーラーのインストールの "トランザクション処理" はサポートされません。 これらのバージョンの Windows インストーラーでは、複数のパッケージのインストールを 1 つのトランザクションとしてロールバックできません。

リモート デスクトップ サービス ロールが有効になっている Windows Server 2008 R2: サポートされません。 リモート デスクトップ サービス ロールが有効になっている場合、MsiEmbeddedChainer テーブルを使用した複数パッケージのインストールは失敗します。