Какой метод сжатия используется в файлах MSI? - PullRequest
3 голосов
/ 17 ноября 2010

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

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

Ответы [ 2 ]

7 голосов
/ 11 июня 2011

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

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

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

MSDN информация: Microsoft Cabinet SDK и Формат кабинета Microsoft .


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

1 голос
/ 17 ноября 2010

Не уверен, что метод сжатия, но проверьте это: http://support.microsoft.com/kb/255905

...