7

我使用 WiX3 生成 MSI 安装包。<Package>我在和<Media>元素中都指定了压缩标志:

<Package InstallerVersion="200" Compressed="yes"/>
<Media Id="1" Cabinet="MySetup.cab" EmbedCab="yes" CompressionLevel="high" />

但生成的 MSI 根本没有压缩 - WinZip 将其从 2M 压缩到 600K。

我错过了什么吗?

我正在使用 VS2008 顺便说一句。

4

3 回答 3

4

MSI 文件不是 OLE 结构化存储文件。它们不能被压缩,并且 Windows Installer 仍然能够读取它们。但是,很多东西都存储在 MSI 文件中(例如您的 UI 图形和 CustomAction DLL 和快捷方式图标),因此您应该注意放入 MSI 中的内容。

WiX 工具集中没有任何内容可以分析您将它们放入 MSI 并对其进行压缩的每一件事(当然,除了 cab 文件,因为 Windows Installer 预计会对其进行压缩)。

老实说,Windows 安装程序本身并不支持当今最好的压缩。要做的一件事是构建包并使用引导程序分发压缩内容并在将其传递给 Windows Installer 之前解压缩。这就是 WiX v3.5 的烧录引导程序的计划。

于 2008-12-25T20:05:45.830 回答
2

你的问题中缺少一些东西。但是你怎么知道它没有被压缩。如果 Winzip 可以进一步压缩它,并不总是意味着它没有被压缩。您可以使用7-zip来调查生成的 msi 文件。里面应该有驾驶室,解压出来,看看解压前后的大小。

于 2008-12-24T10:51:05.793 回答
1

对于巨大的位图,我建议在 Photoshop 中编辑它们以缩小它们。通过将它们更改为索引调色板(图像>模式>索引),然后将生成的文件保存为 8 位压缩 BMP,我设法将两个 600K 位图降低到约 35k。

试一试 ;)

于 2008-12-29T06:20:56.333 回答