2008-12-24 81 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。

給它一個鏡頭;)