I have an MSI file which I include the following merge modules modules:
<Merge Id="VCRedistVC90CRT" SourceFile="C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC90_CRT_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistVC100CRT" SourceFile="C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC100_CRT_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistVC90MFC" SourceFile="C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC90_MFC_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistVC90ATL" SourceFile="C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC90_ATL_x86.msm" DiskId="1" Language="0"/>
Which is all well and good but its not enough for my application to run on a virgin machine. If I install the VS2008 SP1 re-distributable exe from the Microsoft site the application launches just fine.
I have determined which folders are missing in the C:\Windows\WinSxs folder however I have no means to determine the merge module that would contain the components that I require.
Why are the merge modules in “C:\Program Files (x86)\Common Files\Merge Modules\” not sufficient? And where can I find the correct module?
Turns out I was missing the policy merge modules.