SAP Knowledge Base Article - Public

2719939 - Crystal Reports for Visual Studio Runtime versioning - side by side ability - what to do with WinFormCRViewer.zip from download WIKI

Symptom

We have recently updated 3 of our products that use the SAP Crystal Reports Runtime for .NET Framework (32-bit) from version 9 to version 23.   It appears the components in version 23 have been re-versioned and when we install our products other products that use an earlier version of the runtime don’t work.

To install the CR runtime we use CRRuntime_32bit_13_0_23.msi

Questions:

  1. Should we be using a different method to install the CR Runtime. 
  2. Can multiple version of the runtime exist on the same machine? 
  3. If not how do I get around the issue of other application that don’t use the same version of the runtime that we do?  

Environment

Crystal Report Developer for Visual Studio

Resolution

When R&D updated the Assembly version from 13.0.2000.0 to 13.0.3500.0 we deprecated 2.0 framework support.

Note: 2000 and 3500 is the framework version, 2.0 and 3.5

Answers to the specific questions:

#1. No, you can use CR for VS runtime distribution packages from the download page, MSI, MSM, etc.

#2. Absolutely not, CR for VS runtime are full builds and use the same folder structure and cannot be used side by side. always use the latest build.

#3. The work around is to use the attached WinFormCRViewer.zip attached to the download WIKI Page here:

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

Typically a .NET application can use a file labelled app.config, in this file it typically has entries for the framework and other properties like log on info etc. When you build your application a file labelled YourApp.exe.config is copied from the app.config file that is used in Visual Studio.

To allow multiple applications that use differing versions of CR for VS runtime open the zip file and copy all of the

dependentAssembly

sections and paste them into your app.config file in the appropriate location.

If you do not have an app.config then use the one attached file in the WIKI. Rename the WinFormCRViewer.exe.config to your ApplicationName.exe.config

What the redirct does is to tell your or their application to use the previous version of our assemblies

bindingRedirect oldVersion="13.0.2000.0"newVersion="13.0.3500.0"

For Example this could be your application.exe.config file as compiled by Visual Studio in you\bin\Release folder:

<?xml version="1.0"?>
<configuration>
<configSections>
  <sectionGroup name="businessObjects">
    <sectionGroup name="crystalReports">
      <section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </sectionGroup>
</configSections>
  <startup></startup>
 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <dependentAssembly>
    <!-- <assemblyIdentity name="System.Web.Services" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/> -->
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
   </dependentAssembly>
      <dependentAssembly>
        <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
      </dependentAssembly>
    </assemblyBinding>
 </runtime>
</configuration>

What you should be able to do is copy and rename the WinFormCRViewer.exe.config file to the third party name leaving the .exe.config file extension into that third parties folder where the EXE is and restart their application, it should read the new config file and redirect the 3500 to the 2000 version.

Work flow:

To explain further:

  1. Copy the config file from the wiki page into the third party’s app folder where the exe resides
  2. Modify the third party’s exe config file, example TheirApp.exe.config – Windows will do the rest, it will open the config file and redirect it’s references to version 13.0.2000.0.
  3. Look for this section their config file if they have, otherwise just add it:

      <dependentAssembly>

        <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>

      </dependentAssembly>

  1. You don’t need to have one in your project, unless it’s needed.

CAUTION: If the 3rd party application has an existing app.config file check with them before modifying it and adding in the redirect command. Make a copy of it just in case...

Warning: Depending on the version of the runtime the third party application was built with, updating to SP 21 or above may have issues so you may still need to contact the Makers of the software for an updated version that supports SP 20. Use SP 20 if they cannot go to a higher Framework version. See the download WIKI on how to get older versions of the VS instlal package and redist packages.

Keywords

CR for VS, WinFormCRViewer.zip, side by side, redirect, 13.0.2000.0, 13.0.3500.0 , KBA , BI-DEV-NET , BI Software Development Kits (SDKs) - .NET or Other , How To

Product

SAP Crystal Reports, developer version for Microsoft Visual Studio