将我的安装程序版本升级到WiX 3.5后,msi大小从100Mb降至仅4Mb!起初我以为有些文件是从MSI中排除的,所以我用-v(详细)和-notidy(保存临时文件)选项运行light.exe 3.0和3.5,检查cab文件,确实在3.5的情况下cab文件是3.8Mb而3.0是98Mb。在驾驶室内看,所有文件似乎都存在。尝试提取两个出租车 - 输出看起来相同。最后,仍然不相信我的眼睛,我安装了4Mb MSI,它工作了!有什么可以解释这么大的差异?我目前的理论 - 也许新的WiX使用新的CAB压缩逻辑来检测重复文件并创建引用而不是多次添加文件? MSI链接时间也显着下降...我的程序包含20多个文件夹,所有这些文件夹中都有相同的DLL ...
答案 0 :(得分:3)
Wix 3.5.0619.0包含以下更改(来自http://wix.sourceforge.net/releases/3.5.2519.0/history.txt):
智能驾驶室现在可以抓住所有人 重复文件,而不仅仅是来自的文件 相同的源路径(基于文件 散列)。
从Wix 3.0升级到3.5后,我也观察到安装程序大小的类似减少。上述更改将解释这一点,因为我们的安装程序提供的文件中存在一些重复,而这些只会被文件哈希而非源路径拾取。
答案 1 :(得分:1)
您的3.0中是否有不同的源路径以及3.5中的源路径相同?
答案 2 :(得分:1)
您可以在某处共享MSI(如果您愿意,请随时与我联系,请参阅http://robmensching.com)?我知道在WiX v3.5中没有任何可能导致这种剧烈变化的变化......除非您的.wxs文件发生变化......或者存在错误。 ;)