使用自动化将合并模块合并到数据库中

合并模块提供了一种标准方法,用于将共享的 Windows Installer 组件和设置逻辑传递给应用程序。

必须使用合并工具将合并模块合并到安装包中。 最佳做法是获取免费分发的合并工具,或购买独立软件供应商提供的合并工具之一,例如,可以使用 Mergemod.dll

以下过程演示了如何使用合并模块自动化将合并模块合并到 Windows Installer 数据库。

将模块合并到数据库中

  1. 使用 OpenLog 方法打开日志文件。

    仅当需要创建日志文件或为合并过程追加现有日志文件时,才需要执行此步骤。

  2. 使用 Merge 对象OpenDatabase 方法打开 .msi 安装数据库。

    此步骤是必需的。

    打开的数据库是要接收合并模块的数据库。

  3. 使用 OpenModule 方法打开 .msm 合并模块。

    此步骤是必需的。

    这是要合并到数据库中的合并模块。 必须先打开模块,然后才能将其与安装数据库合并。

  4. 通过调用 Merge 方法或 MergeEx 方法将模块合并到安装数据库中。

    此步骤是必需的。

    Merge 方法或 MergeEx 方法只能调用一次来合并特定组合的 .msi 和 .msm 文件。

    注意

    MergeEx 方法仅在 Mergemod.dll 版本 2.0 或更高版本中可用,并且仅在使用 IMsmMerge2 接口时可用。

     

  5. 检索 Errors 属性,并检查它返回的 Error 对象的集合是否存在合并冲突或其他错误。

    你必须解决任何错误。

    检索是非破坏性的,可以通过重复读取 Errors 属性来检索错误集合的多个实例。

  6. 使用 Connect 方法将合并模块的组件与功能相关联。

    仅当具有现有功能并且想要添加要合并到安装数据库中的功能时,才需执行此步骤。

    在调用此方法之前,必须存在一种功能。 有关详细信息,请参阅将合并模块连接到多个功能

  7. 如有必要,请通过执行以下一项或多项操作,从模块中提取源文件:

  8. 使用 CloseModule 方法关闭当前打开的合并模块。

    此步骤是必需的。

  9. 使用 CloseDatabase 方法关闭打开的安装数据库。

    此步骤是必需的。

    关闭数据库会清除所有依赖项信息,但不会影响未检索到的任何错误。

  10. 使用 CloseLog 方法关闭当前日志文件。

    如果有打开的日志文件,则需要执行此步骤。

使用 Mergemod.dll 将模块合并到数据库中后,必须更新 Media 表以描述所需的源映像布局。 Mergemod.dll 提供的合并过程不会更新 Media 表,因为合并模块的使用者可以选择各种方式来布局源映像。

已发布的版本、工具和可再发行组件