我正在寻找关于如何为应用程序套件构建基于WiX和Burn MSI的安装程序解决方案的高级建议。
给定下面的布局,当所有应用程序/功能和共享库进入同一个安装目录时,安装程序套件应该使用多少个不同的MSI包?
我们的应用程序套件有点像MS Office,因为我们有一个安装文件夹,其中安装了一系列应用程序及其所有共享库文件。那是:
C:\ProgramFiles\MyApplicationSuite
\ - App1.exe
\ - App2.exe
\ - App3.exe
\ - ...
\ - libxy.dll
\ - qt.dll
\ - ...
到目前为止,我们只有一个InnoSetup安装程序,可以安装所有应用程序作为功能,也就是说,Windows程序列表中只有一个程序条目。这很好用,因为大多数时候整个套件都安装了,有些安装可能不会使用一个或两个应用程序。
由于单一设置方法开始中断,而企业要求迫使我切换到基于MSI的安装,我正在研究如何使用WiX,Burn和粒度MSI软件包构建这样的野兽。
关于拆分或合并设置主题的一些想法:Wix to Install multiple Applications。撇开这个并查看是否有适用的变量(发布计划,本地化,构建速度等)。
你可以使用merge modules或WiX include files(基本上像普通的头文件包含在C ++中,它是一个preprocessor operation)在几个设置中包含共享组件。然后,它们将被正确引用计数,您可以以受控方式分发更新。
就个人而言,我喜欢将共享组件完全从主MSI中拆分出来,然后通过单独的先决条件设置将它们安装在一起,然后将它们全部捆绑在一个由Burn制作的引导程序或等效工具包中,以便按顺序安装多个MSI和/或EXE文件。我发现这会产生良好的内聚/耦合。这是值得商榷的。当MSI包含共享的嵌入式组件(合并模块/包含文件)时,它更“自包含”,但特别是对于企业部署,我喜欢将所有共享组件拆分为它们自己的先决条件MSI。这有一些非常技术性的原因,我需要更多的时间来解释而不是可用的。
我现在就把它留在那里,可能会在以后返回并更新。
一些链接(主要是为了方便检索):