A number of files shipping in SP1 have a dependency on specific versions of the Microsoft VC80 merge modules.
Use of incorrect VC80 merge modules with InstallShield will result in errors when attempting to retrieve the dependencies file. The dependencies relate to various Microsoft .dll’s (although only the GUIDs are listed):
Using the VS .NET IDE
Use of incorrect VC80 merge modules when building a deployment package will appear to be successful, however when installing the deployment package, 31 files will fail to register during the install process, giving error 1904.
List of files that fail to register:
To resolve possible issues during build and deployment of your deployment package, the correct versions of the VC80 merge modules must be included in your project. The correct versions are as follows:
• Microsoft_VC80_ATL_x86.msm; version 8.0.50727.762
• Microsoft_VC80_CRT_x86.msm version 8.0.50727.762
• Microsoft_VC80_MFCLOC_x86.msm; version 8.0.50727.762
• Microsoft_VC80_MFC_x86.msm; version 8.0.50727.762
• Microsoft_VC80_OpenMP_x86.msm; version 8.0.50727.762
These merge modules can be obtained by installing Service Pack 1 for Visual Studio 2005. Alternatively, download the Visual C++ 2005 SP1 Redistributable Package from the following link:
and use the newly installed VC80 merge modules in your deployment package. Keep in mind this download is for an MSI installer package. It’s expected that this MSI is installed before the merge module setup package.
Note that the Crystal Reports 2008 MSI file (CRRuntime_12_1._mlb.msi) includes the correct dependency merge modules and installs without any issues.
** Update for users of VS .NET 2008. **
The how and why of the issues is discussed in the above blog. When the blog was originally created, I was only considering users of VS .NET 2005, not realizing that users of VS .NET 2008 were going to run into additional issue. Before proceeding, a bit of a recap is in order:
The CR 2008, SP 1 merge modules were built with dependencies on specific versions of the Microsoft VC80 merge modules. These VC80 merge modules can only be obtained by updating the VS .NET 2005 environment with the latest Microsoft Service Pack.
And thus the extra issue for developers using VS .NET 2008. How does the developer get these merge modules, as they are not provided anywhere else as a download by Microsoft? Notes 1353170 – How to build a setup package with Crystal Reports 2008 SP1 merge modules and Visual Studio .NET 2005? and 1352616 – How to build a setup package with Crystal Reports 2008 SP1 merge modules and Visual Studio .NET 2008? written by David Hilton address this issue in detail. Please note that these soluitions will work for Service Pack 2 and Service Pack 3.
An additional note, 1353170 – How to build a setup package with Crystal Reports 2008 SP1 merge modules and Visual Studio .NET 2005? also created by David contains further information for users of VS .NET 2005.
With the above information developers using VS .NET 2005 as well as VS .NET 2008 and Crystal Reports 2008 should be able to overcome the runtime issues introduced in CR 2008 Service Pack 1.
Related Useful Links
Microsoft Blog which details when to include Visual C++ Libraries in your deployment project:
InstallShield kbase; Build Error -4072 When Building a Project That Includes a Merge Module Created By Visual Studio .NET Installer: