创作合并模块 Sequence 表

如果合并模块必须修改 target.msi 文件的操作序列表,请在 .msm 文件中包括 MergeModulesequence 表。 合并操作不会将这些表添加到 .msi 文件。 这些表仅出现在合并模块中。

如果 .msm 文件中存在任何 ModuleSequence 表,则还必须将相应安装程序序列表的空副本编写到合并模块中。 例如,如果合并模块包含 ModuleAdminExecuteSequence 表,则合并模块还必须包含空的 AdminExecuteSequence 表。 在合并期间,这些空表为合并工具提供必要的架构准则。

在合并模块序列表中使用标准操作时,Sequence 列中的值应为标准操作的建议操作序列号。 请参阅下面给出的建议操作序列,了解每个序列表中的建议序列号。 如果合并模块序列表中的序列号与 .msi 文件中同一操作的序列号不同,则合并工具在合并期间使用 .msi 文件中的序列号。

MergeModuleSequence 表 建议的操作序列
ModuleAdminUISequence 建议的 AdminUISequence
ModuleAdminExecuteSequence 建议的 AdminExecuteSequence
ModuleAdvtUISequence 建议的 AdvtUISequence
ModuleAdvtExecuteSequence 建议的 AdvtExecuteSequence
ModuleInstallUISequence 建议的 InstallUISequence
ModuleInstallExecuteSequence 表 建议的 InstallExecuteSequence

 

如果在合并模块序列表的 Action 列中使用了标准操作,该记录的 BaseAction 和 After 列必须为 Null。

如果在 Action 列中输入了自定义操作或对话框,则 Sequence 列必须为 Null。

如果在 Action 列中输入了返回终止标志的操作,则 Sequence 列应包含该标志的负值,并且该记录的 BaseAction 和 After 列必须为 Null。 以下负值表示在安装程序返回终止标志时调用相应的操作。

终止标志 说明
msiDoActionStatusSuccess -1 成功完成。
msiDoActionStatusUserExit -2 用户终止安装。
msiDoActionStatusFailure -3 致命错误退出终止。
msiDoActionStatusSuspend -4 暂停安装。

 

BaseAction 列可能包含标准操作、合并模块的自定义操作表中指定的自定义操作或模块的对话框表中指定的对话框。 BaseAction 列是此表的 Action 列的键。 它不能是另一个合并表或 .msi 文件中的表的外键。 这意味着 BaseAction 列中列出的每个标准操作、自定义操作或对话框也必须在此表中另一条记录的 Action 列中列出。