← Back to team overview

coapp-developers team mailing list archive

Re: MSI compression

 

I may be misunderstanding some of your description but some of that doesn't
line up with my understanding:

1. MSI may contain 0 - N embedded cabinets. Note: with < MSI 5.0 the
embedded cabinets are stripped from the MSI when the MSI is cached but on
MSI 5.0 and later the embedded cabinets are not. When Burn (
http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn) is ready,
we're going to see a big push away from embedded cabinets.

2. MSI may contain "binary streams" but these are never the installed files.
Typically, the binary streams are used for custom actions and icons for ARP
and advertised shortcuts. These streams are not compressed unless some
special code works extracts them (DTF does this for managed code).

3. MSI may reference 0 - N external cabinets. These must exist beside the
MSI with the names specified in the MSI file.

4. MSI may reference 0 - N external files. These files may be laid out in a
directory tree of based on the Directory table in the MSI.

5. I didn't know that Orca could see the embedded cabinets.

-- 
virtually, Rob Mensching - http://RobMensching.com LLC


On Wed, Aug 11, 2010 at 10:59 AM, Garrett Serack <garretts@xxxxxxxxxxxxx>wrote:

> Hey Olaf,
>
> MSI actually doesn't *directly* support compression at all.
>
> Files can be embedded in the MSI or embedded in a CAB file that is embedded
> in the MSI. Depending on the tool used to create the MSI, the files may or
> may not be in a compressed CAB file, and the CAB file itself has three
> options for file compression (LZX, DEFLATE and PAQ)
>
> Deflate should be about the same as zip--it's the same compression
> algorithm.
>
> LZX is actually a very good compression algorithm, and often beats zip,
> rar2, and others. It's specifically tweaked to store x86 binaries, so
> theoretically should produce the best results.
>
> It's important to note that content outside the embedded CAB files are not
> compressed (so any data/metadata in the MSI tables for example) and that
> it's probably compressing that pretty good (that data is often a lot of
> text, and should compress well).
>
> And, FYI: MSI examination Tools like Orca (from the Windows SDK)
> transparently unpack CAB resources, and so you don't even see them--which
> until I found that out, I thought that they weren't being compressed at all!
>
> G
>
> Garrett Serack | Open Source Software Developer | Microsoft Corporation
> I don't make the software you use; I make the software you use better on
> Windows.
>
>
> -----Original Message-----
> From: Olaf van der Spek [mailto:olafvdspek@xxxxxxxxx]
> Sent: Wednesday, August 11, 2010 10:22 AM
> To: Garrett Serack
> Subject: MSI compression
>
> Sometimes I see .msi inside .zip, with compression being 7%. Is the
> compression of .msi that bad?
> Garett, maybe you could ask the MSI guy?
>
> Olaf
>
> _______________________________________________
> Mailing list: https://launchpad.net/~coapp-developers<https://launchpad.net/%7Ecoapp-developers>
> Post to     : coapp-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~coapp-developers<https://launchpad.net/%7Ecoapp-developers>
> More help   : https://help.launchpad.net/ListHelp
>
>

References