【问题标题】:Switching from WiX 3.0 to 3.5 decreased msi size from 100Mb to 4Mb?从 WiX 3.0 切换到 3.5 将 msi 大小从 100Mb 减少到 4Mb?
【发布时间】:2010-08-27 20:56:27
【问题描述】:

将我的安装程序版本升级到 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 都重复...

【问题讨论】:

    标签: wix wix3.5


    【解决方案1】:

    Wix 3.5.0619.0 包含以下更改(来自 http://wix.sourceforge.net/releases/3.5.2519.0/history.txt):

    智能出租车现在可以解决所有问题 重复文件,而不仅仅是来自 相同的源路径(基于文件 哈希)。

    从 Wix 3.0 升级到 3.5 后,我还观察到安装程序大小也有类似的减少。上述更改将解释这一点,因为我们的安装程序正在交付的文件中有一些重复,这些只会被文件哈希而不是源路径拾取。

    【讨论】:

      【解决方案2】:

      您的 3.0 中是否有不同的源路径和 3.5 中的相同源路径?

      WiX Smart Cabbing

      【讨论】:

      • 其实,不,我没有改变任何定义,只是调用了不同的light.exe
      • 好吧,智能 cabbing 可以解释行为差异,根据 Rob 的文章,没有命令行开关可以启用它,它是基于源路径的自动的。因此,要么修复了某些问题,要么您的构建环境发生了变化,因此它现在以某种方式解析为相同的路径。
      【解决方案3】:

      您能否在某处分享 MSI(如果您愿意,请随时离线联系我,请参阅 http://robmensching.com)?据我所知,在 WiX v3.5 中没有任何可能导致这种剧烈变化的变化……除非你的 .wxs 文件发生了变化……或者存在错误。 ;)

      【讨论】:

      • 很遗憾,这是一个私人产品,我不允许分发它。还有其他选择吗?
      • 深入了解这两个 WiX 工具集之间的差异以及问题的根本原因?或者也许只是高兴这是一个性能的胜利而不是一个性能损失? ;)
      • 有人追根究底吗?我升级到 WiX3.5 以尝试解决以下问题:stackoverflow.com/questions/4721266/… 并发现它可以减少我的最终安装程序大小。我很想知道我遇到的问题是否是 WiX 3.0 中的限制,或者我是否可以在不升级的情况下解决。
      猜你喜欢
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2017-12-17
      • 2011-03-28
      • 2015-08-22
      • 2010-10-03
      • 1970-01-01
      • 2016-12-03
      相关资源
      最近更新 更多