MsiEmbeddedChainer テーブル
次の表を使用して、の複数パッケージ インストールを作成します。 MsiEmbeddedChainer テーブルの各行は、1 つのパッケージから複数の Windows インストーラー パッケージをインストールするために使用できる、異なるユーザー定義関数を参照します。 ユーザー定義関数 実行可能ファイルは、Windows インストーラー パッケージ内に格納されます。
Windows インストーラー 4.0 以前の: サポートされていません。 この表は、Windows インストーラー 4.5 以降で使用できます。
リモート デスクトップ サービスの ロールが有効になっている Windows Server 2008 R2 : サポートされていません。 リモート デスクトップ サービスの ロールが有効になっている場合、MsiEmbeddedChainer テーブルを使用した複数パッケージのインストールが失敗します。
1 つのパッケージから複数のパッケージをインストールするには、MsiEmbeddedChainer テーブルにリストされているユーザー定義関数の 1 つに、アクションを実行するために評価される条件フィールドに条件ステートメントが必要です。 複数の関数に、実行対象として評価される条件がある場合、実行できる関数は 1 つだけです。 このケースはエラーであり、どの関数が実行されるかを保証できません。 インストールで他のカスタム アクションが必要な場合は、CustomAction テーブル とシーケンス テーブルに作成する必要があります。
関数は、MsiJoinTransaction 関数を呼び出して現在のインストールに参加する必要があります。また、複数のパッケージのインストールをコミットするには、MsiEndTransaction 関数を呼び出す必要があります。 MsiEndTransaction 呼び出す前に関数が戻った場合、インストーラーはすべてのインストールをロールバックします。
MsiEmbeddedChainer テーブルには、次の列があります。
コラム | 種類 | 鍵 | 許容 |
---|---|---|---|
MsiEmbeddedChainer | 識別子の | Y | N |
条件 | 条件の | N | Y |
CommandLine | 書式設定された | N | Y |
源 | CustomSource を する | N | N |
種類 | 整数 の | N | N |
列
-
MsiEmbeddedChainer
-
テーブルの主キー。 この値は、この行によって記述されるユーザー定義関数の一意識別子です。
-
条件
-
ユーザー定義関数を実行するための条件付きステートメント。 このフィールドによって評価されるプロパティ値を変更する変換を使用して、MsiEmbeddedChainer テーブルに一覧表示されている関数を有効または無効にすることができます。 詳細については、「条件ステートメントでのプロパティの使用 」を参照してください。
-
コマンド ラインの
-
このフィールドの値は、Source 列で識別される実行可能ファイルに渡されるコマンド ライン文字列の一部です。 インストーラーは、このフィールドの値をトランザクション ハンドルに追加してコマンド ラインを生成します。 この列の値が null の場合、コマンド ラインはトランザクション ハンドルのみで構成されます。
-
ソース
-
ユーザー定義関数の実行可能ファイルの場所。 Type 列の値が 2 の場合、この列には、バイナリ テーブルへの外部キーを含めることができます。 [種類] 列の値が 18 の場合、この列には、ファイル テーブルの外部キーを含めることができます。 Type 列の値が 50 の場合、この列には、Property テーブルの外部キーを含めることができます。
-
の種類
-
MsiEmbeddedChainer テーブルに記載されている関数については、次のカスタム アクション数値型を使用して説明します。 この列には、次の 3 つの数値型の値のみを含めることができます。カスタム アクション フラグのその他の組み合わせは無視されます。
カスタム アクションの種類 カスタム アクション フラグ 16 進 数 小数 カスタム アクション タイプ 2 msidbCustomActionTypeExe + msidbCustomActionTypeBinaryData 0x002 2 カスタム アクションの種類 18 msidbCustomActionTypeExe + msidbCustomActionTypeSourceFile 0x012 18 カスタム アクションの種類 50 msidbCustomActionTypeExe + msidbCustomActionTypeProperty をする 0x032 50
備考
Windows インストーラーでは、アプリケーションの提供情報中に、このテーブル内のユーザー定義関数が実行されるのを防ぐことはありません。 Condition 列の条件付きステートメントを使用すると、提供情報中に関数が実行されないようにすることができます。
Windows インストーラーには、Windows インストーラー パッケージの上にリッチ ユーザー インターフェイスを構築するための、埋め込み以外の外部 UI ハンドラーも用意されています。 Windows インストーラーで外部 UI ハンドラーを使用する方法の詳細については、「MsiSetExternalUI を使用したインストールの監視」を参照してください。
MsiPackageCertificate テーブル には、複数パッケージのインストールを行うインストール パッケージの ID を確認するために使用されるデジタル署名証明書が一覧表示されます。 この表を使用すると、複数パッケージのインストールで、管理者による応答を必要とする ユーザー アカウント制御 (UAC) プロンプトが表示される回数を減らすことができます。