2008-12-24 58 views
7

我使用WiX3生成MSI安装包。 我指定在两个<Package><Media>元素comression标志:WiX生成的MSI未压缩

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

但由此产生的MSI不压缩的话 - 的WinZip压缩从2M到600K。

我错过了什么吗?

我正在使用VS2008 btw。

+0

您指定的XML标签并没有在文中走出来。我认为将它们标记为“代码”应该在文本中显示它们。 – vividos 2008-12-29 07:17:23

回答

2

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

4

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

在WiX工具集中没有任何东西可以分析您将它们放入MSI并对它们进行压缩(除了cab文件外,当然,因为Windows安装程序需要压缩)。

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

1

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

给它一个镜头;)