tags:

views:

69

answers:

2

After upgrading my installer build to WiX 3.5 the msi size fell from 100Mb down to only 4Mb! At first I thought some files were excluded from MSI, so I ran light.exe 3.0 and 3.5 with -v (verbose) and -notidy (to keep the temp files) options, checked the cab files, and indeed in case of 3.5 the cab file was 3.8Mb while the 3.0 produced 98Mb. Looking inside the cab, all the files seem to be present. Tried extracting both cabs -- the output looks identical. Finally, still not believing my eyes I installed the 4Mb MSI and it worked! What can explain such a drastic difference? My current theory -- perhaps the new WiX uses new CAB compressin logic which detects duplicate files and creates references instead of adding the file multiple times? The MSI linking time dropped significantly as well... My program consists of 20+ folders with pretty much same DLLs duplicated in all of them...

+1  A: 

Did you have different source paths in your 3.0 and the same source path in your 3.5?

WiX Smart Cabbing

Christopher Painter
Actually, no, I haven't changed any of the definitions, only calling a different light.exe
zvolkov
Well, smart cabbing would explain the behavior difference and according to Rob's article there are no command line switches to enable it, it's automatic based on source paths. So either something was fixed or your build environment changed so that it's somehow resolving as the same path now.
Christopher Painter
+1  A: 

Can you share the MSIs somewhere (feel free to contact me offline if you prefer, see http://robmensching.com)? There are no changes that I know of in WiX v3.5 that could cause that sort of drastic change... unless your .wxs files changed... or there is a bug. ;)

Rob Mensching
Unfortunately this is a private product and I'm not allowed to distribute it. Any other options?
zvolkov
Dig into the differences between the two WiX toolset's and root cause the issue? Or maybe just be happy it's a performance win and not a performance loss? ;)
Rob Mensching