MSI сгенерированный WiX не сжат - PullRequest
7 голосов
/ 24 декабря 2008

Я использую WiX3 для генерации установочного пакета MSI. Я указал флаг сжатия в обоих элементах <Package> и <Media>:

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

но полученный MSI вообще не сжимается - WinZip сжал его с 2М до 600К.

Я что-то упустил?

Я использую VS2008 кстати.

Ответы [ 4 ]

4 голосов
/ 25 декабря 2008

MSI-файлы не являются файлами OLE структурированного хранилища. Они не могут быть сжаты, и установщик Windows по-прежнему сможет их читать. Однако в файле MSI хранится много вещей (например, графические элементы пользовательского интерфейса, DLL-библиотеки CustomAction и значки ярлыков), поэтому следует помнить о содержимом, которое вы помещаете в MSI.

В наборе инструментов WiX нет ничего, что позволяло бы анализировать каждую из вещей, которые вы помещаете в MSI и сжимаете (конечно, за исключением файла cab, поскольку установщик Windows ожидает его сжатия).

Честно говоря, установщик Windows изначально не поддерживает лучшее сжатие на сегодняшний день. Единственное, что нужно сделать, это собрать пакет и использовать загрузчик, который распределяет сжатый контент и распаковывает его перед передачей установщику Windows. Это план для загрузчика WiX v3.5.

2 голосов
/ 24 декабря 2008

В вашем вопросе чего-то не хватает. Но откуда ты знаешь, что это не сжато. Если Winzip может сжимать его дальше, это не всегда означает, что он не сжимается. Вы можете использовать 7-zip , чтобы исследовать полученный MSI-файл. Внутри должна быть кабина, извлеките ее и посмотрите на размер до и после распаковки.

1 голос
/ 02 сентября 2010

Проверьте этот URL, я думаю, у вас та же проблема Максимальное сжатие wix

1 голос
/ 29 декабря 2008

Что касается огромных растровых изображений, я предлагаю редактировать их в фотошопе, чтобы уменьшить их. Мне удалось получить два 600-битных растровых изображения до ~ 35 КБ каждое, изменив их на индексированный цветовой поддон (Изображение> Режим> Индексированный), а затем сохранив полученный файл как 8-битный сжатый BMP.

Дайте ему шанс;)

...