2010-04-09 35 views
6

我曾經用NSIS爲應用程序構建安裝,最終的自提取程序爲1.2 MB。由於操作需要,現在我需要使用WIX,並以4.2 MB出現相同的安裝。我將壓縮標誌設置爲軟件包節點上顯示的文檔和規格。使用7z將MSI壓縮成2.4 MB的壓縮文件。使用WIX進行MSI安裝的最大壓縮量

問題:如何在MSI上執行最大壓縮或創建小型MSI(例如,移除不需要的資源等)?

注 - 尺寸是非常重要的,我現在必須使用MSI/WIX - 這是一個顯示塞!

回答

6

問題是一個ICON元素引用一個源文件 - 主要的exe文件 - 然後再次包含exe文件,這次沒有壓縮作爲資源。

   <Directory Id="app" Name="MyApp"> 

       <Component Id="app.exe" DiskId="1" Guid="AGUID_123"> 

        <File Id="app.exe" Name="app.exe" Source="..\app\app.exe" KeyPath="yes"> 
         <Shortcut Id="ExeShortcut" Directory="ProgramMenuDir" Name="MyApp" Advertise="yes" Icon="StartMenuIcon.exe" IconIndex="0" /> 
        </File>... 

而且低了下去:

<Icon Id="StartMenuIcon.exe" SourceFile="..\app\app.exe" /> 

我發現它使用7Zip的打開所產生的MSI文件,並看到一個熟悉的文件大小 - 未壓縮的主exe文件。

現在生成的MSI文件爲1.4 MB,與NSIS一致。

+0

位圖也可能導致大小爆炸。通過使用256色壓縮BMP文件而不是24位未壓縮的文件可以節省一點點:) – saschabeaumont 2010-04-12 02:09:50

+0

不幸的是,「金光閃閃」是非常需要的 - 大多數是PNG,雖然 – MX4399 2010-04-16 17:51:44

+1

謝謝,這解決了我的問題。我使用了一個自定義的ico文件。是否有任何方法可以引用可執行文件圖標,以便保留原始行爲? – tuscland 2013-07-11 17:10:07

1

您是否嘗試在Media元素中設置CompressionLevel ='high'屬性?此外,我應該說,維克斯只包括那些你指示它包含的東西,因此,我認爲你不能輕易找到任何東西從你的包中退出......

+0

幫助了一下 - 200 kb – MX4399 2010-04-16 17:51:00

相關問題