2536330 - In-place (FlexNet), MSI and Merge Modules upgrade from Crystal Reports for Visual Studio SP xx to SP 21 does not work

SAP Knowledge Base Article - Public

2536330 - In-place (FlexNet), MSI and Merge Modules upgrade from Crystal Reports for Visual Studio SP xx to SP 21 does not work

Symptom

Actions: Install SAP Crystal Reports, developer version for Microsoft Visual Studio SP21  (32-bit) (without manually removing SPxx before that).

Observed: When attempting to initiate report preparation, the message box is displayed:

--------------------------- Crystal Reports ---------------------------

An error has occurred while attempting to load the Crystal Reports runtime. Either the Crystal Reports registry key permissions are insufficient, or the Crystal Reports runtime is not installed correctly. Please install the appropriate Crystal Reports redistributable (CRRedist*.msi) containing the correct version of the Crystal Reports runtime (x86, x64, or Itanium) required. Please go to http://www.businessobjects.com/support for more information.

--------------------------- OK ---------------------------

Workarounds : Either: Run Repair from Add/Remove programs. Remove existing CR installation before installing SP21. Why the workarounds are not acceptable : Our product installs Crystal Runtimes (32 and 64 bit) as a prerequisite.   We need to be able to upgrade the installation of Crystal Reports runtime without requiring system administrators to do manual pre- or post- cleanup.

Environment

  • SAP Crystal Reports, developer version for Microsoft Visual Studio SPxx installed (32-bit)
  • Upgrade to SAP Crystal Reports, developer version for Microsoft Visual Studio SP21 installed (32-bit)

Reproducing the Issue

  1. Install Crystal Reports for Visual Studio SP20 (32-bit) Verify that CR works:
  2. Run a program which uses 32-bit CR Runtime SPxx to open a report on a machine with SPxx and run
  3. When it starts - Open Sample.rpt report and run, the Report works.
  4. Install Crystal Reports for Visual Studio SP21 (32-bit) by executing the CRRuntime_32bit_13_0_21.msi package.
  5. Verify that CR works.

Use Distribution Software/Packager now:

  1. Run a program which uses 32-bit CR Runtime SP21 to open/create the report (rebuild application  with SP21 and run, then attempt to open Sample.rpt).
  2. Observed: At #2, a message box is displayed after attempting to open a report: "An error has occurred while attempting to load the Crystal Reports runtime. Either the Crystal Reports registry key permissions are insufficient, or the Crystal Reports runtime is not installed correctly. ..."

Looking in "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\" -- notice that a number of files, like crdb_ado.dll, are missing.

Cause

In-Place upgrade do not work for CRforVS SP21, that’s by design. Same limitation for FlexNet and Merge Modules upgrade do not work as well,  it’s same for all CRRuntime packages. Actually the backend technology of FlexNet upgrade is just the in-place upgrade

FlexNet Upgrade does not work:  Once user receive the update notification from FlexNet server and finish SP21 upgrade, the product will NOT work. User MUST repair CR4VS and CRRuntime64 in Control Panel\Programs and Features. That’s a by design change to the installer.

We used upgrade code for in-place upgrade, please refer to the info below:

UpgradeCode      CommandLine                                                   Packages
CRRuntime32     {7C0C5FDF-1EB0-49EF-BE8B-726DFD0F0323}    msiexec /i CRRuntime_32bit_13_0_xx.msi Upgrade=1 UpgradeCode={7C0C5FDF-1EB0-49EF-BE8B-726DFD0F0323}
CRRuntime64     {6B3BA13D-31A5-4DEB-BE1C-C0F9C28A8FFF}    msiexec /i CRRuntime_64bit_13_0_xx.msi Upgrade=1 UpgradeCode={6B3BA13D-31A5-4DEB-BE1C-C0F9C28A8FFF}
CR4VS               {2F09ABBE-457D-4F57-B851-98707B619FB2}     setup.exe Upgrade=1 UpgradeCode={2F09ABBE-457D-4F57-B851-98707B619FB2}

So if the customer must use In-place upgrade with SP21(take CRRuntime32 package as example),  he needs to:

  • Run command “msiexec /i CRRuntime_32bit_13_0_21.msi Upgrade=1 UpgradeCode={7C0C5FDF-1EB0-49EF-BE8B-726DFD0F0323}”

to execute the upgrade from previous CRRuntime32

CAUTION: directly running “msiexec /I CRRuntime_32bit_13_0_21.msi” does NOT fix the issue.

  • In Control Panel\All Control Panel Items\Programs and Features, choose SAP Crystal Reports runtime engine for .Net Framework (32-bit), And Select Repair.

Recommended way:

  • run command “msiexec /f CRRuntime_32bit_13_0_21.msi”

Resolution

Another issue discovered was due to the GUID id's being updated the silent install installs SP 21 first and then uninstalls SPxx.

Due to this order the uninstall removes the SP 21 files which renders the application unusable.

The Recommended way is to uninstall SP xx first and then install SP21.

  1. run command “msiexec /u CRRuntime_32bit_13_0_xx.msi” ( xx is the previous SP number )
  2. run command “msiexec /f CRRuntime_32bit_13_0_21.msi”
  3. Use a Custom function in InstallShield to uninstall SPxx first and then instlal SP21.

This issue will be looked at to see if the update order can be resolved in SP 22

See Also

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

In that WIKI is more info on upgrading:

New In SP21 Release

  1. Integration with Visual Studio 2017
  2. .NET Framework 4.7
  3. FireFox ESR 52
  4. Addressed 10+ customer Incidents.

We still support .Net Framework 3.5 SP1(except the ADO.NET case #5)

Below items should be highlight for SP21:

1.    FlexNet Upgrade does not work:  Once user receive the update notification from FlexNet server and finish SP21 upgrade, the product will NOT work. User MUST repair CR4VS and CRRuntime64 in Control Panel\Programs\. That’s a by design change to installer.

a.    Please notice that we are still facing problems on configuring FlexNet upgrade server, so currently user will NOT receive SP21 notification

2.    Microsoft Windows Update KB2999226 is a prerequisite for SP21.

a.    This is same as BI 4.2 SP4 and BI 4.1 SP10. Please refer to SAP Note 2451830.

3.    For VS2017 integration, user needs use “run as Administrator” by right-clicking setup.exe, even if you are already log on by using Administrator account

4.    As most of CR/RAS .NET Assemblies are now re-versioned from 13.0.2000.0 to 13.0.3500.0, user MUST remove all old CR assemblies from Reference list and add the new version of CR assemblies, then rebuild the application.

a.    For those customer/user who do not wanted to rebuilt their application, there’s workaround to use <dependentAssembly> in app.config/web.config, please see attachment. Place the xml file in the same location as your EXE and app.config

''WinFormCRViewer.zip

5.    For reports using the ADO.Net DB connection, in previous SP's, you could only work under .Net Framework 2.0/3.5, so using <startup useLegacyV2RuntimeActivationPolicy="true"> in app.config is required. Now in SP21, ADO.Net is only supported on .Net Framework 4.0 or above and no longer requires the Legacy Mode line:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.x.x"/>
</startup>

remove the legacy mode reference:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.x.x"/>
</startup>

Keywords

cr for vs, .net, flexnet,In-Place, MSI, redist, Merge Modules, SP21 , KBA , BI-DEV-NET , BI Software Development Kits (SDKs) - .NET or Other , Problem

Product

SAP Crystal Reports, developer version for Microsoft Visual Studio