创作合并模块

以下过程介绍了创作合并模块的一般步骤。

创建新的合并模块

  1. 获取可用于编辑合并模块数据库的软件工具。
  2. 获取空白合并模块数据库。
  3. 为合并模块生成 GUID 。 在合并模块中创作数据库表的主键时,需要使用此 GUID。
  4. 为合并传递的每个组件向 组件表 添加记录。 每个合并模块都需要组件表。 请注意,合并模块使用组件操作,而不使用功能。 但是,在某些情况下,数据库表项可能需要引用功能。 有关详细信息,请参阅 合并模块中的引用功能
  5. 目录表 添加到合并模块,该模块指定合并模块添加到目标数据库的目录布局。 每个合并模块都需要目录表。
  6. 将空白 FeatureComponents 表 导入合并模块数据库。 如果.msi文件不包含其自己的 FeatureComponents 表,则此空表为合并工具提供了指南。
  7. 收集此合并模块提供的所有文件,并创建 MergeModule.CABinet 内阁文件。 将内阁添加到合并模块作为 .msm 文件中的流。
  8. 为 MergeModule.CABinet 中存储的每个文件将记录添加到文件表。
  9. 添加在 ModuleSignature 表中标识合并模块所需的信息。 每个合并模块都需要 ModuleSignature 表。
  10. 列出 ModuleComponents 表中合并模块中的组件。 每个合并模块都需要 ModuleComponents 表。
  11. 仅当合并模块需要修改目标安装数据库的 序列表 时,才将合并模块序列表添加到 .msm 文件。
  12. 将_Validation表添加到合并模块。 合并模块需要_Validation表才能通过验证。
  13. 合并模块只需要极少数情况下的用户界面。 不建议包含包含合并模块的 UI。 如果需要用户界面,UI 表可以合并到与其他表相同的.msi文件中。
  14. 将注册表信息添加到合并模块数据库中的相应注册表表。 将类型库、类、扩展和谓词的注册表信息添加到 TypeLibClassAppIdProgIdExtensionVerbMIME 表中。 所有其他注册表信息都可以进入 注册表表。 不建议使用 SelfReg 表。
  15. 将摘要信息添加到 合并模块摘要信息流
  16. 在尝试安装之前,对所有合并模块运行验证。

获取空白合并模块数据库

获取合并模块创作工具

在合并模块数据库中命名主键

创作合并模块组件表

创作合并模块目录表

创作合并模块 FeatureComponents 表

生成 MergeModule.CABinet 内阁文件

创作合并模块文件表

创作 ModuleSignature 表

创作 ModuleComponents 表

创作合并模块序列表

验证合并模块

在合并模块中创作用户界面

创作合并模块注册表表

创作合并模块摘要信息流

合并模块摘要信息流参考

验证合并模块

使用 64 位合并模块