Максимальное сжатие при установке MSI с использованием WIX - PullRequest
7 голосов
/ 09 апреля 2010

Я использовал для сборки установки для приложения с NSIS, и окончательная самоизвлечение было 1,2 МБ. Теперь мне нужно использовать WIX из-за операционных потребностей, и такая же установка выходит на 4,2 МБ. Я установил сжатые флаги как документы и спецификации, указанные на узле пакета. Использование 7z для архивирования MSI приводит к созданию файла ZIP размером 2,4 МБ.

Вопрос: Как я могу максимально сжать MSI или создать маленький MSI (например, удалить ненужные ресурсы и т. Д.)?

Примечание - размер очень важен, и теперь я должен использовать MSI / WIX - это ограничитель шоу!

Ответы [ 2 ]

6 голосов
/ 09 апреля 2010

Проблема была в элементе 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, и увидел знакомый размер файла - несжатый основной файл.

Результирующий файл MSI теперь 1,4 МБ и на уровне NSIS.

2 голосов
/ 09 апреля 2010

Вы пытались установить атрибут CompressionLevel = 'high' в элементе Media ? Кроме того, я должен сказать, что WiX включает в себя только те вещи, которые вы указали включить, поэтому я не думаю, что вы сможете легко найти что-то, что можно выпустить из вашего пакета ...

...