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 SP 25

Crystal Report Developer for Visual Studio SP 26

Resolution

When R&D updated the Assembly version from 13.0.2000.0 to 13.0.3500.0 (SP25) and 13.0.4000.0 (SP26) we deprecated 2.0 and 3.5 framework support.

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

Note for SP 26: 4000 is the framework version, 4.5.1 minimum

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 - rename ApplicationNamw to the actual EXE file.

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

Note change 3500 to 4000 for SP 26

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 older 2000 to the 3500 or 4000 if using SP 26 or above.

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 install 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