Hello,

Is it possible to change programatically the compression level of a
cab file with keeping its internal referencial structure intact ?
Initially I tried to "unCab" and "cab" an InstallShield generated cab
using

...
using Microsoft.Deployment.Compression.Cab;
...

CabInfo cabInfo = new CabInfo("C:\\Data1.cab");
cabInfo.Unpack("D:\\ExtractedFiles");

CabInfo cabNew = new CabInfo("C:\\Data2.cab");
cabNew.Pack("D:\\ExtractedFiles", true,
Microsoft.Deployment.Compression.CompressionLevel.None, null);
...

But as expected this produced a cab which did not work anymore. I
assume the internal referencing structure went wrong. Checking
http://www.codeproject.com/KB/files/CABCompressExtract.aspx I also
re-checked whether the InstallShield Cabs are MicroSoft Cab File
compatible (first four bytes are "MSCF"). Unfurtunately I'm not so
deep in DTF yet to figure out what is missing and how to handle that.

Maybe for the goal of the whole actions: Re-Compressing existing CAB
files to have no compression (CompressionLevel=none). This is needed
on the one hand side for generating compression less CABs from
InstallShield (IS seems to have no configuration ability for that) and
re-compress WiX cabs to CompressionLevel=none. Then we can pack these
installations e.g. with LZMA (7-zip) to ship the small packages over
Internet or get a better compression rate when such a package includes
an x86 and x64 cab where many files are identical.

Best regards
Tobias

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to