我有一个相当大的WiX安装程序(250 Mb以上),我正在尝试提出一个合适的升级策略.
安装程序中的大多数文件都不会更改,我们不希望在只有一个或两个文件发生更改时不必分发整个软件包.
我已经研究过主要和次要升级,我的理解是,如果产品ID发生变化,只要升级ID保持不变,就会发生重大升级,如果这两个值保持不变,则可以使用次要升级补丁.
我的感觉是,使用补丁进行小幅升级是处理只有少数文件发生变化的情况的最佳选择,只有在大量文件发生变化时才重建整个安装程序.
我已经使用"torch"对此进行了测试,根据两个"wixpdb"文件之间的差异生成"wixmst"文件,然后从中构建补丁.但是,我发现我只能从一个版本修补到另一个版本(例如1.0.0到1.0.1,然后是1.0.1到1.0.2但不是1.0.0到1.0.2).是否可以针对补丁定位最低版本并支持其上的任何版本?
修补是一种痛苦,所以当你学会掌握它时,要为它做好准备.这是另一种可能适合您的策略.将MSI分成2个MSI(Microsoft称之为Micropackages).拥有一个基本MSI,其中包含预期不会更改的大部分内容,以及包含您希望高流失的文件的第二个MSI.
然后使用Burn是一个引导程序来处理这些链接并将它们一起卸载.这与Visual Studio的功能类似.
现在您可以发布第二个MSI的主要升级.