我正在寻找有关如何为应用程序套件构建基于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软件包构建这样的野兽。
答案 0 :(得分:1)
关于拆分或合并设置主题的一些想法: Wix to Install multiple Applications 。撇开这个,看看是否有适用的变量(发布时间表,本地化,构建速度等)。
您可以使用merge modules或WiX include files(基本上像普通的头文件包含在C ++中,它是preprocessor operation)来在多个设置中包含共享组件。然后,它们将被正确引用计数,您可以以受控方式分发更新。
我个人喜欢将共享组件完全从主MSI中拆分出来,然后通过单独的先决条件安装将它们安装在一起,然后将它们全部捆绑在一个用Burn制作的引导程序或等效工具包中,以便安装多个MSI和/或EXE文件按顺序排列。我发现这会产生良好的内聚/耦合。这是值得商榷的。 MSI更具有自足性,并且#34;当它包含共享的嵌入式组件(合并模块/包含文件)时,特别是对于企业部署,我喜欢将所有共享组件拆分为它们自己的先决条件MSI。有一些非常技术性的原因,我需要更多的时间来解释而不是现有的。
我现在就把它留在那里,可能会在以后返回并更新。
一些链接 (主要是为了便于检索):