Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

Problems building InstallShield installer after upgrading to MS 2010

Solved!
Go to solution

Hello all,

 

I recently upgraded one of my .NET applications from MS 2009  to MS 2010. Now that I am using MS 2010, my installer (InstallShield LE with Visual Studio 2010) will not compile. Specifically, I get the following errors:

 

 

Error	1	-4072: Error retrieving dependency Microsoft_VC100_CRT_x86.DF495DFD_79F6_34DF_BB1E_E58DB5BDCF2C:0 of c:\program files (x86)\common files\merge modules\MStudioCommon.2010.msm	ISEXP : error : -4072: Error retrieving dependency Microsoft_VC100_CRT_x86.DF495DFD_79F6_34DF_BB1E_E58DB5BDCF2C:0 of c:\program files (x86)\common files\merge modules\MStudioCommon.2010.msm.


Error	2	-4072: Error retrieving dependency Microsoft_VC100_ATL_x86.DF495DFD_79F6_34DF_BB1E_E58DB5BDCF2C:0 of c:\program files (x86)\common files\merge modules\MStudioUI.2010.msm	ISEXP : error : -4072: Error retrieving dependency Microsoft_VC100_ATL_x86.DF495DFD_79F6_34DF_BB1E_E58DB5BDCF2C:0 of c:\program files (x86)\common files\merge modules\MStudioUI.2010.msm

 

 

Obviously it can find the NI merge modules, but those merge modules have dependencies that cannot be found. I double checked the folder specified in the error message, and all of the NI merge modules are there along with Microsoft_VC100_ATL_x86.msm and Microsoft_VC100_CRT_x86.msm. I have even tried manually adding the C++ 10 ATL and CRT merge modules to the installer, but no luck. I remember a similar error that occurred in an older version of Measurement Studio in reference to Microsoft_VC90_CRT and Microsoft_VC90_ATL. To fix that error, you had to update Visual Studio 2008 to Service Pack 1. As far as I can tell, I am on the latest build of Visual Studio 2010.
 
Any suggestions?
-Steven

 

0 Kudos
Message 1 of 24
(20,096 Views)

Hi Steven,

 

I was wondering if you have tried out the steps outlined here to try to solve the problem. 

Regards,

Hassan Atassi
Senior Group Manager, Digital Support
0 Kudos
Message 2 of 24
(20,072 Views)

Yes, I have followed all the steps outlined in the link you posted. All of the dependencies for the required merge modules are present on my computer (and selected for the installation). I can even see the Microsoft_VC100_ATL_x86.msm and Microsoft_VC100_CRT_x86.msm merge modules listed in the "redistributables" list. But even when I select those merge modules, it still gives me the "error retrieving dependency" message.

 

The next step in that link you provided was to "contact the company that authored the merge module." 

 

I just tried duplicating this problem with a new VS 2010 solution. Here were my steps:

 

1) Create Windows Forms .NET 3.5 solution

2) Add a Waveform Graph to Form1

3) Add an InstallShield LE Project to solution

4) Add the output of the Windows Form's project to the installer

5) Build the Windows Form project, then build the InstallShield Installer project

 

Here is the output:

Errors.jpg

0 Kudos
Message 3 of 24
(20,063 Views)
Solution
Accepted by topic author shansen

Hello Steven -

 

I'm going to guess that you've recently installed Service Pack 1 for Visual Studio 2010.  It appears that SP1 for VS 2010 overwrites the two merge modules you mentioned, and replaces them with merge modules with different signatures.  Because the Measurement Studio 2010 merge modules were built against the non SP1 version of Visual Studio 2010, the build errors you're seeing result. 

 

I've attached the non SP1 version of these merge modules below.  You should be able to add them to your installer project and get past the build errors.  Please let me know if you have any trouble or questions.

 

NickB

National Instruments

 

Message 4 of 24
(20,045 Views)

I copied the new merge modules and now everything is working.

 

Thanks! 

Message 5 of 24
(20,037 Views)

Hello Nick and Steven,

I am having the same problem as Steven described (VS 2101 with SP1) however I am using the Visual Studio Installer rather than InstallShieldLE.

I have downloaded the msm from Nicks post and unzipped the file in an arbitrary folder

I then include the .msms in the Setup as described & rebuilt

but the error remains.

Do the .msm files need to be paced in a specific location?

Did I misunderstand something?

 

Thanks and Regards

Ivan Vernot

www.realtimedesigns.com.au

0 Kudos
Message 6 of 24
(19,491 Views)

If you want the Visual Studio setup wizard to automatically pull in those merge modules, you will need place them in the <ProgramFilesDir>\Common Files\Merge Modules directory. Otherwise you will need to manually reference those merge modules from your setup project.

 

Hope this helps.

Jonathan N.
National Instruments
0 Kudos
Message 7 of 24
(19,487 Views)

Hi Jonathan

That worked.

What are the implication to other (future) projects  of using 'old' .msms files instead of the 'fresh' ones from Microsoft?

 

Are NI planning to release new mstudio merge modules  for VS2010 SP1?

 

Thanks and Regards

Ivan

 

0 Kudos
Message 8 of 24
(19,475 Views)

Hi Ivan,

Very good question. Allow me to provide you with a little background first and then I will answer your exact questions.

When we build a binary that depends on a specific version of the VC runtime, we make sure to install the associated VC runtime merge modules.  This allows us to support merge module deployment in Visual Studio. For example, suppose we built a binary that had a dependency on the 64-bit VC2010 CRT runtime. This would imply the following:

  1. Our merge module would have an entry in the ModuleDependency table that specified our dependency on the VC runtime. When you specify a dependency in the ModuleDependency table, you indicate a specific module signature and a specific version. The information we specify in this table comes directly from the Microsoft merge module we depend on.
  2. We install the Microsoft merge module which in this case would be the Microsoft_VC100_CRT_x64.msm merge module.


The problem is that Microsoft sometimes changes their module signature during Visual Studio updates and service packs. When the signature changes, it breaks our dependency chain. Ideally, Microsoft should keep their signature the same for the each version of Visual Studio. Another option by Microsoft would be to provide a better way to safely share their runtime merge modules across different installers. When this dependency chain breaks, the Visual Studio auto-detection of merge modules and their associated dependencies breaks. Thus, you only end up with the NI merge modules in your setup project.

Answers to your questions:
What are the implication to other (future) projects  of using 'old' .msms files instead of the 'fresh' ones from Microsoft?
If you are building binaries in Visual Studio 2010 SP1 that link against the VC runtime, then you will need to make sure and distribute th SP1 merge modules. Otherwise, you could end up with a VC runtime issue on the target system (e.g., you are building against a higher version of the 2010 VC runtime than what gets installed on the target system). Its probably safer if you include the SP1 merge modules from Microsoft rather than the original 2010 merge modules. The only implication here is that you will need to manually add them to your project instead of the auto-detection.  

Are NI planning to release new mstudio merge modules  for VS2010 SP1?
If any of our binaries start building against VS2010 SP1, then yes, we will include the VC 2010 SP1 merge modules.

As a side note, we are fully aware of the issue and are looking into better solutions to handling this issue.

Jonathan N.
National Instruments
0 Kudos
Message 9 of 24
(19,458 Views)

@nickb wrote:

Hello Steven -

 

I'm going to guess that you've recently installed Service Pack 1 for Visual Studio 2010.  It appears that SP1 for VS 2010 overwrites the two merge modules you mentioned, and replaces them with merge modules with different signatures.  Because the Measurement Studio 2010 merge modules were built against the non SP1 version of Visual Studio 2010, the build errors you're seeing result. 

 

I've attached the non SP1 version of these merge modules below.  You should be able to add them to your installer project and get past the build errors.  Please let me know if you have any trouble or questions.

 

NickB

National Instruments

 



Hi Nick,

 

Would it be possible to attach the non SP1 x64-bit versions?

 

Regards,

Sergey

0 Kudos
Message 10 of 24
(18,766 Views)