Deploying Crystal Reports for Visual Studio 2010 Runtime
This wiki details a number of approaches to ensure that the correct Crystal Reports components and assemblies are installed on client computers. Deploying Crystal Reports for Visual Studio 2010 (CRVS2010) runtime files is mandatory in order to ensure that a project containing Crystal Reports components functions correctly.
There are three distinct deployment scenarios for deploying Crystal Reports for Visual Studio 2010. The deployment options include the use of merge module (MSM) files, MSI file and ClickOnce. Only MSI and ClickOnce deployments are available in both 32 bit and 64 bit modes. The MSM files are 32 bit only and do not include Microsoft Visual C++ 2005 dependencies.
Licensing must be the first consideration in any runtime deployment; will this be a Windows application? Intranet application? Extranet application? Each of these has its own licensing intricacies. For more details see the SAP Crystal Reports Licensing Information page and / or consult your account manager or SAP Sales.
Crystal Reports for Visual Studio 2010 runtime conssists of the 32 bit MSM file, CRRuntime_13_0_2.msi (note the "2" in the MSM and MSI file names denotes Service pack 2), 32 bit MSI file (CRRuntime_32bit_13_0_2.msi) and a 64 bit MSI file (CRRuntime_64bit_13_0_2.msi). All of the runtime files can be downloaded from the SAP Crystal Reports, developer version for Microsoft Visual Studio: Updates & Runtime Downloads. Note that there is no 64 bit MSM file. Also, note that using the Crystal Reports 2008 runtime with Crystal Reports for Visual Studio 2010 is not supported. This deployment was only a stop gap solution for the Beta version of CRVS2010.
Crystal Reports for Visual Studio 2010 merge module (MSM file) is a single package that includes all CRVS2010 files, resources, registry entries, and basic setup logic. The MSM is smaller – about 42 MB as opposed to the 32 bit MSI (72 MB) and the 64 bit MSI at 80 MB. The Crystal Reports MSM file is configurable and thus allows for the removal of database DLLs not needed by the application. However, the MSM file is missing the Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security dependencies. It is the responsibility of the developer to ensure that the Microsoft dependencies are installed before attempting to install the CRVS2010 runtime. Missing Micosoft Visual C++ 2005 dependencies will typically lead to errors. An example error would be the following:
Product: Error 1904. Module "C:Program Files (x86)SAP BusinessObjectsCrystal Reports for .NET Framework 4.0CommonSAP BusinessObjects Enterprise XI 4.0win32_x86 ExportModeller.dll" failed to register. HRESULT - 1073741819. Contact your support Personnel.
Note that the above error will be repeated for a number of different files.
See KB 1544708 for more details. Additionally using the merge modules effectively binds the CRVS2010 runtime to the application. Thus in the event that the application needs a CRVS2010 update, the application setup project will need to be re-packaged, uninstalled and reinstalled on the client system in order to update the client with the new runtime. A note that bears repeating; there is no 64 bit MSM file.
The Crystal Reports for Visual Studio 2010 MSI files are self-installing Windows Installer packages. Using MSI files does not require creation of a setup project. A simple double click of the CRVS2010 MSI file will ensure the installation and configuration of the Crystal Reports runtime. Such use of MSI files is recommended for Intranet applications that do not require intricate installer User Interface, system modifications and so on. Updating the CRVS2010 runtime is as simple as using the Add/Remove Programs to remove the existing CRVS2010 runtime and installing the new CRVS2010 MSI. The new Crystal Reports runtime is installed without completely removing the application. When an MSI file is used in a deployment project, it essentially segregates the CRVS2010 runtime from the application.
Extranet applications installed by the end user may require better user interface than that supplied by the default MSI and in this case chaining the MSI file into a setup project will be a required, leading to additional scripting. The default CRVS2010 MSI packages include all the required CRVS2010 files, “Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security” dependencies, registry information and more. Note that as in an MSM based setup project in the event that the application needs a CRVS2010 update, the application setup project will need to be re-packaged, uninstalled and reinstalled on the client system in order to update the client with the new runtime.
ClickOnce deployment used for Windows applications only, uses an MSI file (32 or 64 bit) hosted either by SAP, or the application developer. Ensuring that the correct files are automatically installed on 64 bit Operating Systems will require product XML modifications. See KB number 1553968 . Using ClickOnce deployment greatly simplifies the process of installing and updating an application’s runtime. Other advantages of ClickOnce deployements:
- Possibility of an auto-update.
- Each application is self-contained and cannot interfere with other applications
- Only those portions of the application that have changed are downloaded and more…
Some of the disadvantages of ClickOnce deployements:
- ClickOnce can only install applications on a per-user basis
- It is not possible to use ClickOnce if admin privileges are required (which they are in the case of Crystal Reports)
- Download and installation times of the CRVS2010 70 +MG file may not be acceptable and more…
For more detailed discussion of MSM and MSI files see the MSDN library; Installer Package Files and Merge Modules. The MSDN article written by Michael Sanford; Choosing Between ClickOnce and Windows Installer is also a recommended reading.
This wiki briefly introduces the topic of deploying the Crystal Reports for Visual Studio 2010 runtime. The following wikis detail the how-to of the three deployment options:
- Using Crystal Reports for Visual Studio 2010 Merge Modules (MSM) to create a Setup project Using Crystal Reports for Visual Studio 2010 MSI files to create a Setup project
- Using Crystal Reports for Visual Studio 2010 MSI file to create a Setup project
- Using Crystal Reports for Visual Studio 2010 CliCkOnce to deploy CR Runtime