Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
764 views
in Technique[技术] by (71.8m points)

wix - What is the compression method used by MSI files?

I can extract a MSI file, but when I try to regenerate it from the extracted files the resulting file doesn't work.

I guess that if I changed the compression method from Deflate to another one, it would work.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

First of all: there is a script in the Windows Installer SDK called WiMakCab.vbs which is used to create *.cab files for use in MSI files. One of the lines in that script is: Dim compressType : compressType = "MSZIP"). You should probably try that script when creating the cabs.

Below is an annotated quote from http://www.gdgsoft.com/ (16.06.2014: removed direct broken link, leaving the base url):

"Microsoft Cabinet supports three lossless compression techniques: (1) storing , (2) MSZip, and (3) LZX. Within a cabinet archive file, any combination of these techniques may be used. MSZip is essentially the same as the deflation compression method used by PKZip. LZX is an LZ77-based compression technique that uses static Huffman encoding. LZX uses more memory, but can produce better compression ratios than MSZip. Stored, of course, means the file is stored into the cabinet uncompressed."

MSDN info: Microsoft Cabinet SDK and Microsoft Cabinet Format.


Some Links:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...