4

我们的产品包含三个部分:

  • 应用程序文件(exe 和 dll 文件)
  • 帮助文件
  • SSRS 报告

所有这三个东西都通过使用 WIX 构建的相同安装程序一起安装。在我们公司,每个组件都是由不同的团队开发的,并且有不同的截止日期。我们想将我们的 MSI 分成三个部分,这样当一个部分变得稳定时,它的安装程序部分也很稳定,并且在其他部分更新时不会从头开始重建。

我查看了合并模块和 CAB 文件,但我认为这是错误的方向。WIX 工具集中有什么东西可以帮助我实现目标吗?

(我已经阅读了Building MSI Installer and Separaete Installation Files的问题,但相信这个问题有点不同。)

谢谢你的帮助。

4

2 回答 2

3

WiX 库 ( *.wixlib) 似乎是在您的案例中分发组件的最佳方法。

我会像这样组织这个过程:

  • 每个团队都有一个单独的 WiX 安装项目(Setup Library Project),它编译成*.wixlib文件而不是 MSI(或 MSM)包
  • 每个项目都随着组件的开发而发展,并且输出与其他团队共享
  • 集成构建将所有wixlib库和链接 (light.exe) 一起收集到一个 MSI 包中

因此,您将始终拥有一个包含最新组件构建的最终安装包,这就是持续集成的全部意义所在。

据我了解,您不会单独分发组件,对于最终用户来说,它仍然是一个可靠的安装包。因此,合并模块可能是开销。与合并工具相比,我怀疑(但不确定)light.exe 在链接库时会执行一些额外的验证。

于 2012-10-24T11:13:37.267 回答
2

好吧,合并模块是一种解决方案。您可以有两个包含帮助文件和 SSRS 报告的合并模块,并将它们添加到仅包含应用程序文件的主包中。如果两个合并模块中没有任何变化,这可能会增加构建时间,但主包更改仍然需要很长的构建时间。

另一种选择是为每个组件创建单独的包,并使用Burn将它们捆绑到一个单独的包中。我会推荐使用合并模块,它更干净且易于管理。

于 2012-10-24T06:00:44.920 回答