我曾经为NSIS的应用程序构建安装,最终自提取器为1.2 MB。现在我需要使用WIX,因为操作需要,同样的安装在4.2 MB。我将压缩标志设置为包节点上指示的文档和规范。使用7z压缩MSI会生成一个2.4 MB的zip文件。
问题:如何在MSI上进行最大压缩或创建小型MSI(例如删除不需要的资源等)?
注意 - 尺寸非常重要,我现在必须使用MSI / WIX - 这是一个显示停止!
答案 0 :(得分: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相同。
答案 1 :(得分:2)
您是否尝试在Media元素中设置CompressionLevel ='high'属性?此外,我应该说WiX仅包含您指示包含的内容,因此,我认为您不会轻易找到任何内容从您的包中退出...