创作合并模块
以下过程介绍了创作合并模块的常规步骤。
创建新合并模块
- 获取可用于编辑合并模块数据库的软件工具。
- 获取空白合并模块数据库。
- 为合并模块生成 GUID。 在合并模块中创作数据库表的主键时,需要使用此 GUID。
- 对于合并传递的每个组件,向 Component 表添加一条记录。 每个合并模块中都需要有一个 Component 表。 请注意,合并模块对组件运行,而不适用于功能。 但在某些情况下,数据库表条目可能需要引用功能。 有关详细信息,请参阅在合并模块中引用功能。
- 将 Directory 表添加到合并模块,该表指定合并模块添加到目标数据库的目录布局。 每个合并模块都需要一个 Directory 表。
- 将空白的 FeatureComponents 表 导入合并模块数据库。 如果 .msi 文件不包含其自己的 FeatureComponents 表,此空表可为合并工具提供指南。
- 收集此合并模块传递的所有文件,并创建 MergeModule.CABinet Cabinet 文件。 将 Cabinet 作为 .msm 文件中的流添加到合并模块。
- 对于 MergeModule.CABinet 中存储的每个文件,向 File 表添加一条记录。
- 添加在 ModuleSignature 表中标识合并模块所需的信息。 每个合并模块都需要一个 ModuleSignature 表。
- 在 ModuleComponents 表中列出合并模块中的组件。 每个合并模块都需要一个 ModuleComponents 表。
- 仅当合并模块需要修改目标安装数据库的序列表时,才将合并模块序列表添加到 .msm 文件。
- 将 _Validation 表添加到合并模块。 合并模块需要 _Validation 表才能通过验证。
- 在极少数情况下,合并模块需要用户界面。 不建议使用合并模块包含 UI。 如果需要用户界面,UI 表可以与其他表一样合并到 .msi 文件中。
- 将注册表信息添加到合并模块数据库中的相应注册表表。 将类型库、类、扩展和谓词的注册表信息添加到 TypeLib、Class、AppId、ProgId、Extension、Verb 或 MIME 表中。 所有其他注册表信息都可以进入注册表。 建议不要使用 SelfReg 表。
- 将摘要信息添加到合并模块摘要信息流。
- 尝试安装之前,请对所有合并模块运行验证。
相关主题
-
验证合并模块