I have a .msm of 100MB and when I build my WiX project I get a .msi of 200MB Here some code:
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Merge Id="MyMsmFile" Language="1033" SourceFile="msm\MyMsmFile.msm"
DiskId="1" FileCompression="yes" />
<Directory Id="INSTALLFOLDER" Name="Foo" >
</Directory>
</Directory>
<Feature Id="Foo_client" Title="Foo Client" Level="1"
ConfigurableDirectory="INSTALLFOLDER" >
<Feature Id="Server" Title="Foo Server" Level="32767">
<MergeRef Id="MyMsmFile" />
</Feature>
</Feature>
Edit:
Please note that the CompressionLevel="high" at <Media> takes the .msi from 200MB to 180MB
This is like I see the content of .msm with 7z(Looks like orca tables with ! prefix and a file called MergeModule.CABinet and others).
This is like I see the content of .msi with 7z (The filenames).
Edit 2:
It looks like I'm including the msm 2 times. If I set EmbedCab="no" my msi is still over 100MB plus a 100MB of product.cab.
Please take a look at this revised code:
<Product Id="PUT-GUID-HERE"
Name="MyProduct"
Language="1033"
Version="0.0.1"
Manufacturer="MyCompany"
UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Media Id="1" Cabinet="product.cab" EmbedCab="no" CompressionLevel="high" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<UIRef Id="WixUI_FeatureTree" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLFOLDER" Name="MyProduct" >
<Merge Id="ThirdPartModule" Language="1033" SourceFile="ThirdPartModule.msm" DiskId="1" />
</Directory>
</Directory>
<Feature Id="Server" Title="MyProduct Server" Level="1" >
<MergeRef Id="ThirdPartModule" />
</Feature>
</Product>
This is a VisualStudio 2012 project - Release - x64.
Finally...
I chose to go with a burn bootstrapper project, sorry for the mess :D