This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Problem with VC90 CRT MergeModules
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 31, 2008
07:58 AM
Problem with VC90 CRT MergeModules
Hi All,
I've been trying to solve this issue for a few days, with no success. I would be glad if anyone here could give me some help.
I have a project in C++ compiled in Visual Studio 2008. My DLL files need Microsoft x86 VC90 CRT dlls msvcp90.dll and msvcr90.dll. In order to get those dll files installed, I've added "Visual c++ 9.0 CRT (X86) WinSXS MSM" and the relative policy merge module in my Installshield 2009 solution. This feature is installed before all my dlls.
The problem, however, is that for some reason those files are not being installed (both Vista and XP). When it tries to register my DLLs, I get an error due to missing msvcp90.dll and msvcr90.dll.
From my build log:
Merging modules...
Merging MSXML 4.0: Y:\Installshield 2009\Modules\i386\msxml4sxs32.msm
Merging MSXML 4.0: Y:\Installshield 2009\Modules\i386\msxml4sys32.msm
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: Y:\Installshield 2009\Modules\i386\Microsoft_VC90_CRT_x86.msm
Merging VC User CRT71 RTL X86 ---: Y:\Installshield 2009\Modules\i386\VC_User_CRT71_RTL_X86_---.msm
Merging VC User STL71 RTL X86 ---: Y:\Installshield 2009\Modules\i386\VC_User_STL71_RTL_X86_---.msm
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: Y:\Installshield 2009\Modules\i386\policy_9_0_Microsoft_VC90_CRT_x86.msm
And from the installer log on vista business:
WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
When it tries to register my DLLs, they all fail. With the cancel/retry window open, I've tried to search for those DLLs files in my system and I can only find them in Installshield installation TEMP folder, not where they should be "c:\windows\winsxs" folder.
If I install vs redist manually, my installation succeeds.
Wondering, is there any workaround on this?
Since this was vista business, I created the setup.exe using installshield and set the required execution level as "administrator".
Thanks a lot,
log:
00001: (Unknown): === Logging started: 10/31/2008 9:43:51 ===
00002: (Unknown): Action 9:43:51: INSTALL.
00003: (Unknown): Action start 9:43:51: INSTALL.
00004: (Unknown): Action 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964.
00005: (Unknown): Action start 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964.
00006: (Unknown): Action ended 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964. Return value 1.
00007: (Unknown): Action 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964.
00008: (Unknown): Action start 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964.
00009: (Unknown): Action ended 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964. Return value 1.
00010: (Unknown): Action 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956.
00011: (Unknown): Action start 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956.
00012: (Unknown): Action ended 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956. Return value 1.
00013: (Unknown): Action 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D.
00014: (Unknown): Action start 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D.
00015: (Unknown): Action ended 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D. Return value 1.
00016: (Unknown): Action 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A.
00017: (Unknown): Action start 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A.
00018: (Unknown): Action ended 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A. Return value 1.
00019: (Unknown): Action 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00020: (Unknown): Action start 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00021: (Unknown): Action ended 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54. Return value 1.
00022: (Unknown): Action 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00023: (Unknown): Action start 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00024: (Unknown): Action ended 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54. Return value 1.
00025: (Unknown): Action 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7.
00026: (Unknown): Action start 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7.
00027: (Unknown): Action ended 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7. Return value 1.
I've been trying to solve this issue for a few days, with no success. I would be glad if anyone here could give me some help.
I have a project in C++ compiled in Visual Studio 2008. My DLL files need Microsoft x86 VC90 CRT dlls msvcp90.dll and msvcr90.dll. In order to get those dll files installed, I've added "Visual c++ 9.0 CRT (X86) WinSXS MSM" and the relative policy merge module in my Installshield 2009 solution. This feature is installed before all my dlls.
The problem, however, is that for some reason those files are not being installed (both Vista and XP). When it tries to register my DLLs, I get an error due to missing msvcp90.dll and msvcr90.dll.
From my build log:
Merging modules...
Merging MSXML 4.0: Y:\Installshield 2009\Modules\i386\msxml4sxs32.msm
Merging MSXML 4.0: Y:\Installshield 2009\Modules\i386\msxml4sys32.msm
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: Y:\Installshield 2009\Modules\i386\Microsoft_VC90_CRT_x86.msm
Merging VC User CRT71 RTL X86 ---: Y:\Installshield 2009\Modules\i386\VC_User_CRT71_RTL_X86_---.msm
Merging VC User STL71 RTL X86 ---: Y:\Installshield 2009\Modules\i386\VC_User_STL71_RTL_X86_---.msm
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: Y:\Installshield 2009\Modules\i386\policy_9_0_Microsoft_VC90_CRT_x86.msm
And from the installer log on vista business:
WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7 9:43:51 AM 9:44:03 AM 12 seconds 1 - Success
When it tries to register my DLLs, they all fail. With the cancel/retry window open, I've tried to search for those DLLs files in my system and I can only find them in Installshield installation TEMP folder, not where they should be "c:\windows\winsxs" folder.
If I install vs redist manually, my installation succeeds.
Wondering, is there any workaround on this?
Since this was vista business, I created the setup.exe using installshield and set the required execution level as "administrator".
Thanks a lot,
log:
00001: (Unknown): === Logging started: 10/31/2008 9:43:51 ===
00002: (Unknown): Action 9:43:51: INSTALL.
00003: (Unknown): Action start 9:43:51: INSTALL.
00004: (Unknown): Action 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964.
00005: (Unknown): Action start 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964.
00006: (Unknown): Action ended 9:43:51: SystemFolder.ABDE752DE7D64A7489EDCCC01A329964. Return value 1.
00007: (Unknown): Action 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964.
00008: (Unknown): Action start 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964.
00009: (Unknown): Action ended 9:43:51: CommonFilesFolder.ABDE752DE7D64A7489EDCCC01A329964. Return value 1.
00010: (Unknown): Action 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956.
00011: (Unknown): Action start 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956.
00012: (Unknown): Action ended 9:43:51: CommonFilesFolder.5371CEC4D66D4E0C8A4F896DDCC72956. Return value 1.
00013: (Unknown): Action 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D.
00014: (Unknown): Action start 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D.
00015: (Unknown): Action ended 9:43:51: CommonFilesFolder.4F69404019834DC1993FAABEE95F378D. Return value 1.
00016: (Unknown): Action 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A.
00017: (Unknown): Action start 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A.
00018: (Unknown): Action ended 9:43:51: WindowsFolder.21022.08.policy_9_0_Microsoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A. Return value 1.
00019: (Unknown): Action 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00020: (Unknown): Action start 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00021: (Unknown): Action ended 9:43:51: WindowsFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54. Return value 1.
00022: (Unknown): Action 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00023: (Unknown): Action start 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54.
00024: (Unknown): Action ended 9:43:51: SystemFolder.21022.08.Microsoft_VC90_CRT_x86.RTM.0138F525_6C8A_333F_A105_14AE030B9A54. Return value 1.
00025: (Unknown): Action 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7.
00026: (Unknown): Action start 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7.
00027: (Unknown): Action ended 9:43:51: SystemFolder.246EB7AD_459A_4FA8_83D1_41A46D7634B7. Return value 1.
(7) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 31, 2008
09:46 AM
You should use COM extraction, if possible. If not, you will have to install the CRT first, perhaps as a InstallShield prerequisite. One final option would be to link your .dll files statically against the CRT. The recent CRT (both v8 and v9) merge modules do not actually publish their SxS items in place until too late in the install for a self-registration of the same install to use them. See Aaron Stebner's blog for some details.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 31, 2008
12:57 PM
Hi,
Thanks for your help!
Unfortunately I can't static link to CRT due to some limitation of external DLLs, and since it's a huge code it's not a good idea to put some additional macros to the compilations procedures.
What I've done, which I don't like but seems to work, is to create a separate MSI for VS redistributables. I'm including this MSI as a nested MSI, which I know is not a good thing to do, but...
This seems to trick the full installation of dependencies prior to registering my components COM files.
Thanks,
Fernando
Thanks for your help!
Unfortunately I can't static link to CRT due to some limitation of external DLLs, and since it's a huge code it's not a good idea to put some additional macros to the compilations procedures.
What I've done, which I don't like but seems to work, is to create a separate MSI for VS redistributables. I'm including this MSI as a nested MSI, which I know is not a good thing to do, but...
This seems to trick the full installation of dependencies prior to registering my components COM files.
Thanks,
Fernando
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 03, 2008
04:32 PM
Fernando, I'm having a slightly different problem with that MSM, and since you seem to have gotten further than I have, maybe you can help.
I select the CRT module in the Redistributables view and attempt to build, but I get an error "Could not compress..." all those files. I've never seen this before with any merge modules. It's apparently looking in
Interm\MergeModules\policy_9_0_Microsoft_VC90_CRT_x86.{GUID}\
When I look at that folder during a build, the folder is there, but it's empty...no files.
Do you know anything about this, or any tweaks you had to make to the MSM or its settings?
Thanks!
I select the CRT module in the Redistributables view and attempt to build, but I get an error "Could not compress..." all those files. I've never seen this before with any merge modules. It's apparently looking in
When I look at that folder during a build, the folder is there, but it's empty...no files.
Do you know anything about this, or any tweaks you had to make to the MSM or its settings?
Thanks!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 04, 2008
11:04 AM
Sairen, I think this has come up a couple times on the community, with the resolution being shortening the path to ISProjectFolder - e.g. moving it to C:\MyProj. That should be worth a shot, anyway.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 04, 2008
03:37 PM
Michael,
That does seem to do it - thanks for posting a solution. Do you know if there are any plans to accomodate these really long MSM file names from Microsoft in future versions of InstallShield?
Also, when incorporating these MSMs, there are a lot of ICE03 warning about strings being too long in, for example, custom action names. Does that cause any problems?
Thanks!
That does seem to do it - thanks for posting a solution. Do you know if there are any plans to accomodate these really long MSM file names from Microsoft in future versions of InstallShield?
Also, when incorporating these MSMs, there are a lot of ICE03 warning about strings being too long in, for example, custom action names. Does that cause any problems?
Thanks!
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 05, 2008
10:40 AM
I'm not familiar with any specific plans to address the length limits, but I've not been involved with merge module merging. In general ICE03 warnings about string length can be ignored, as Windows Installer does not enforce string column length limits.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 07, 2008
12:05 PM
Sorry for not answering this before, but this is unfortunately true.
I had to build all my build system in Y:\ so this can work.
I had to build all my build system in Y:\ so this can work.