Что такое метод сжатия, используемый файлами MSI?

Я могу извлечь файл MSI, но когда я пытаюсь восстановить его из извлеченных файлов, результирующий файл не работает.

Я предполагаю, что если бы я изменил метод сжатия от Deflate на другой, он бы сработал.

Ответ 1

Прежде всего: в пакете установщика Windows есть скрипт под названием WiMakCab.vbs, который используется для создания файлов *.cab для использования в файлах MSI. Одна из строк в этом скрипте: Dim compressType: compressType = "MSZIP"). Возможно, вам следует попробовать этот скрипт при создании кабин.

Ниже приведена аннотированная цитата с http://www.gdgsoft.com/ (16.06.2014: удалена прямая неработающая ссылка, оставлена базовая ссылка):

" Microsoft Cabinet поддерживает три метода сжатия без потерь: (1) хранение, (2) MSZip и (3) LZX. В файле архива кабинета может использоваться любая комбинация этих методов. MSZip, по сути, такой же, как метод дефляционного сжатия Используется PKZip. LZX - это технология сжатия на основе LZ77, в которой используется статическая кодировка Хаффмана. LZX использует больше памяти, но может обеспечить более высокие коэффициенты сжатия, чем MSZip. Хранится, конечно, означает, что файл хранится в несжатом корпусе ".

Информация MSDN: Microsoft Cabinet SDK и формат Microsoft Cabinet.


Некоторые ссылки: