Какой метод сжатия используется в файлах MSI?
Я могу извлечь файл MSI, но когда я пытаюсь восстановить его из извлеченных файлов, полученный файл не работает.
Я думаю, что если я изменил метод сжатия с Deflate
к другому, это будет работать.
2 ответа
Прежде всего: в пакете установщика 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.
Не уверен, что метод сжатия, но проверить это: http://support.microsoft.com/kb/255905