InstallerExpert created the topic: Merge Module for msvcr71.dll
I am trying to use a merge module for msvcr71.dll since its strongly recommended to use merge models for re-distributing c runtime libraries.
But i want to copy this msvcr71.dll to 2 different folders on installation.
But using the same merge module reference twice would cause the same file to be included twice in the final msi, which causes conflict in the File table , since file id is the primary key. (Since same file would be included twice
Here is a sample of the code:
< Directory Id="TARGETDIR" Name="SourceDir">
< Merge Id="msvcr71dll" Language="1033" DiskId="1" SourceFile="My_MSM.msm">
< DirectoryRef Id="Folder2">
< Merge Id="msvcr71dllF2" Language="1033" DiskId="1" SourceFile="My_MSM.msm">
< Feature Id="ProductFeature1" Title="MergeMod321" Level="1">
< MergeRef Id="msvcr71dll"/>
< Feature Id="ProductFeature2" Title="MergeMod322" Level="1">
< MergeRef Id="msvcr71dllodbc"/>
Above code gives obvious error that File/Id is duplicated(which is the file id in the msm.
Now i have to use the merge module and i cannot even modify the merge module in anyway and need to copy the file in both the folders.
Is there a way to do so?
I saw the CopyFile element but that can be used only under a Component or File Element.
InstallerGeek replied the topic: Re: Merge Module for msvcr71.dll
Doesn’t the merge module install the file to the Windows system folder? If that’s the case then you shouldn’t need to install the file anywhere else.
InstallerExpert replied the topic: Re: Merge Module for msvcr71.dll
That is all you should Ricky need assuming you’re using the VC++ 7 merge modules provided with Visual Studio 2003. Your convoluted directory structure is totally unnecessary as the merge module is going to put the files into the WinSXS area regardless of where you would like it to go.
You can’t install those merge modules in an arbitrary directory even if you want to.