マージ モジュール シーケンス テーブルの作成

マージ モジュールでターゲット .msi ファイルのアクション "シーケンス テーブル" を変更する必要がある場合は、MergeModuleSequence テーブルを .msm ファイルに含めます。 マージしても、これらのテーブルは.msi ファイルに追加されません。 これらのテーブルは、マージ モジュールにのみ存在します。

いずれかの ModuleSequence テーブルが .msm ファイルに存在する場合は、対応するインストーラー シーケンス テーブルの空のコピーもマージ モジュールに作成する必要があります。 たとえば、マージ モジュールに ModuleAdminExecuteSequence テーブルが含まれている場合、マージ モジュールには空の AdminExecuteSequence テーブルも含める必要があります。 マージ中、これらの空のテーブルは、マージ ツールに必要なスキーマ ガイドラインを提供します。

マージ モジュール シーケンス テーブルで標準アクションを使用する場合、Sequence 列の値は標準アクションの推奨アクション シーケンス番号にする必要があります。 各シーケンス テーブルの推奨されるシーケンス番号については、以下の推奨されるアクション シーケンスを参照してください。 マージ モジュール シーケンス テーブルのシーケンス番号が .msi ファイル内の同じアクションのシーケンス番号と異なる場合、マージ ツールはマージ中に .msi ファイルのシーケンス番号を使用します。

MergeModuleSequence テーブル 推奨されるアクション シーケンス
ModuleAdminUISequence 推奨される AdminUISequence
ModuleAdminExecuteSequence 推奨される AdminExecuteSequence
ModuleAdvtUISequence 推奨される AdvtUISequence
ModuleAdvtExecuteSequence 推奨される AdvtExecuteSequence
ModuleInstallUISequence 推奨される InstallUISequence
ModuleInstallExecuteSequence テーブル 推奨される InstallExecuteSequence

 

標準アクションがマージ モジュール シーケンス テーブルの Action 列で使用される場合、そのレコードの BaseAction および After 列は Null にする必要があります。

カスタム アクションまたはダイアログが Action 列に入力されている場合、[シーケンス] 列は Null でなければなりません。

終了フラグを返すアクションが Action 列に入力されている場合、Sequence 列にはそのフラグの負の値が含まれている必要があり、そのレコードの BaseAction 列と After 列は Null でなければなりません。 以下の負の値は、アクションはインストーラーから終了フラグが返された場合に呼び出されることを示します。

終了フラグ 説明
msiDoActionStatusSuccess -1 正常に完了しました。
msiDoActionStatusUserExit -2 ユーザーがインストールを終了しました。
msiDoActionStatusFailure -3 致命的な終了です。
msiDoActionStatusSuspend -4 インストールが中断されました。

 

BaseAction 列には、標準アクション、マージ モジュールのカスタム アクション テーブルで指定されたカスタム アクション、またはモジュールのダイアログ テーブルで指定されたダイアログを含めることができます。 BaseAction 列は、このテーブルの Action 列へのキーです。 これは、別のマージ テーブルまたは .msi ファイル内のテーブルへの外部キーにすることはできません。 つまり、BaseAction 列に記述されるあらゆる標準アクション、カスタム アクション、またはダイアログは、このテーブル内の別レコードの Action 列にも記述されている必要があります。