cancel
Showing results for 
Search instead for 
Did you mean: 

ClickOnce Crystal Reports Redistributable Upgrade issue

Former Member
0 Kudos

I had an application that I created using Visual Studio 2010 which had a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .NET Framework 4.0.  (Appears to be version 13.0.2)

Now for the same set of customers I want to create an application using Visual Studio 2012 and have a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .Net Framework.  (Appears to be version 13.0.11)

My problem is when I attempt to install the the new program using ClickOnce, it fails if the previous version of the Crystal Reports redistributable is installed. 

The error message I get is: 

Component Crystal Reports for .NET (Force 32bit) V3.0.11 has failed to install with the following error message:

"Fatal error during installation. "

And the install log file has a bunch of text, but ends with these last statements:

...

<Removed some text>

...

Installing using command 'C:\Windows\SysWOW64\msiexec.exe' and parameters ' -I "C:\Users\katies\AppData\Local\Temp\VSD2952.tmp\CrystalReports_Force32Bit_13_11\CRRuntime_32bit_13_0_11.msi" -q '

Will attempt to elevate process.

Process exited with code 1603

Status of package 'Crystal Reports for .NET (Force 32bit) V3.0.11' after install is 'InstallFailed'

If I manually uninstall the previous Crystal Reports, the install works fine.  Is there someway to get this to work automatically instead of having to force my users to manually uninstall before installing the new version?

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi Katie,

The ClickOnce installer should uninstall first by default, it's scripted into the exe.

I suspect they likely need Admin rights.

Setting that flag will not help.

PS, don't install SP 11 links have been removed, known issues, SP 12 should be out next week.

Former Member
0 Kudos

I have admin rights on the machines that I'm testing this with, so it isn't that.

Perhaps I will wait to see if SP 12 fixes my issue.

0 Kudos

Hi Katie,

What OS are you using? I doubt SP 12 will fix this if it's broken. We'll have to test to confirm

Don

Former Member
0 Kudos

Windows 7. I've tested on a 32 bit machine and a 64 bit machine.  Both get the same error when they have the old version of Crystal and I try to install the newer version via my ClickOnce Prerequisite.

0 Kudos

And what was the previous version you had installed?

When you say Prerequisites did you include it in your deployment package? If so you should be able to create a custom action and uninstall the old first.

Don

Former Member
0 Kudos

I deploy using ClickOnce.  There are no custom actions.  Visual Studio just handles everything.  Crystal has a bootstrap that you can use so you just have to check a box to include it as prerequisite.  I had to create my own bootstrap, however, because I needed to install the 32 bit version of Crystal even on a 64 bit machine, because my program targets a 32 bit framework.  (I have to target 32 bit because the program uses an access database which requires the jet engine which is only available on 32 bit.)

Here is a link to documentation about how to create a bootstrap:

Creating Bootstrapper Packages

What I did was take a copy of the crystal bootstrap and modified the product.xml and the package.xml so that it would always install the 32 bit version of crystal.

And if it helps...here is the what my product.xml looks like:

<?xml version="1.0" encoding="utf-8" ?>

<Product

  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"

  ProductCode="Crystal.Reports.Special.3.0.11"

>

  <!-- Defines list of files to be copied on build -->

  <PackageFiles>

    <PackageFile Name="CRRuntime_32bit_13_0_11.msi"

      HomeSite="http://downloads.businessobjects.com/akdlm/crnetruntime/clickonce/CRRuntime_32bit_13_0_11.msi"

      PublicKey="3082010a0282010100c7f9c70fcfa3f3a43aa198b27cb818ed7fe30f1be2e64dd2c50890de5224849a69e7004fb272d62ea9fd682ec47674f59d42165394fe6659846e3f610ba7fb4106ca5de6e54b3bf565e8e203e1a37cf7b98f0bc6bab725143a38932f70823ebcad298c4bbc1a8da93266122e701b85f3609b4e22439c4d31640ca20d738833b0212e2ce1427b96e40a3fd1957c63f355b16f1aee813a18db9129fdf5d29f195818223400d25bc8da1d3c769a69a9db4ac65d85f1c2d9385f2ff3a662cb9bb782c9b1b3fc4757b3d183022cc510a31c2d30d7c6729e5e8c8f3c6eaaba82742cd164b8aad37fdfb23d3f5f0407776b45bf633ddbc1c906553c55a9ddfe4bc412950203010001"/>

    <!-- KJS Commented out 64 bit stuff -->

    <!--<PackageFile Name="CRRuntime_64bit_13_0_11.msi"

      HomeSite="http://downloads.businessobjects.com/akdlm/crnetruntime/clickonce/CRRuntime_64bit_13_0_11.msi"

      PublicKey="3082010a0282010100c7f9c70fcfa3f3a43aa198b27cb818ed7fe30f1be2e64dd2c50890de5224849a69e7004fb272d62ea9fd682ec47674f59d42165394fe6659846e3f610ba7fb4106ca5de6e54b3bf565e8e203e1a37cf7b98f0bc6bab725143a38932f70823ebcad298c4bbc1a8da93266122e701b85f3609b4e22439c4d31640ca20d738833b0212e2ce1427b96e40a3fd1957c63f355b16f1aee813a18db9129fdf5d29f195818223400d25bc8da1d3c769a69a9db4ac65d85f1c2d9385f2ff3a662cb9bb782c9b1b3fc4757b3d183022cc510a31c2d30d7c6729e5e8c8f3c6eaaba82742cd164b8aad37fdfb23d3f5f0407776b45bf633ddbc1c906553c55a9ddfe4bc412950203010001"/> -->

  </PackageFiles>

  <RelatedProducts>

    <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />

    <DependsOnProduct Code="Microsoft.Data.Access.Components.2.8" />

  </RelatedProducts>

  <InstallChecks>

    <RegistryCheck Property="CRRuntime32Version" Key="HKLM\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports" Value="CRRuntime32Version" />

    <!-- KJS Commented out 64 bit stuff -->

    <!-- <RegistryCheck Property="CRRuntime64Version" Key="HKLM\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports" Value="CRRuntime64Version" /> -->

  </InstallChecks>

  <Commands Reboot="Defer">

    <Command PackageFile="CRRuntime_32bit_13_0_11.msi"

      Arguments=''

      EstimatedInstalledBytes="80000000"

      EstimatedInstallSeconds="240">

      <!-- These checks determine whether the package is to be installed -->

      <InstallConditions>

        <!-- Comment out the below BypassIf entry if you want install the 32bit version CRRuntime redist in the target machine -->    

        <!-- ByPass if the Processor is not x86 -->

        <!-- KJS Commented out 64 bit stuff -->

        <!-- <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/> -->

        <!-- ByPass if the installed version is same or higher -->

        <BypassIf Property="CRRuntime32Version" Compare="VersionGreaterThanOrEqualTo"  Value="13.0.11"/>

      

        <!-- Block install if user does not have admin privileges -->

        <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>

        <!-- Block install on Win95 -->

        <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>

        <!-- Block install on NT 4 or less -->

        <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>

      </InstallConditions>

      <ExitCodes>

        <ExitCode Value="0" Result="Success"/>

        <ExitCode Value="1641" Result="SuccessReboot"/>

        <ExitCode Value="3010" Result="SuccessReboot"/>

        <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />

      </ExitCodes>

    </Command>

  

<!-- KJS Removed a big chunk of 64 bit stuff -->

  </Commands>

</Product>

0 Kudos

Hi Katie,

I don't get the error, a message box does pop up if the installer finds a previous version.

How about rather than using a force to use the /x and uninstall first?

Msiexec.exe Command Line

It wouldn't have anything to do with this line in your XML would it?

ProductCode="Crystal.Reports.Special.3.0.11"

Shouldn't that be :

ProductCode="Crystal.Reports.Special.13.0.11"

Thanks again

Don

Former Member
0 Kudos

I don't believe the product code is really that important.  I made it up entirely and it hasn't caused any issues that I know of in the past.

As for the command line suggestion that you had....I don't actually call the msiexec.exe.  The ClickOnce system does that on it's own so I do not have any control over it.  The only things that I can touch are the Product.xml and Package.xml in the bootstrap setup.

Are you running tests using Visual Studio and ClickOnce?  Or just using the msi files?

Former Member
0 Kudos

I redid my bootstrap with the new Cyrstal Reports 13.0.12 and am still having the same issue, as you predicted.  Do you have any other ideas of how I can get this fixed?

Answers (1)

Answers (1)

Former Member
0 Kudos

When developers install the Crystal Reports for .Net on a development machine it automatically adds a default bootstrap in the Prerequisites of Visual Studio.  I made a test program using the default bootstrap for CR13.0.4 I published the program and on another machine (32bit) I installed it via ClickOnce.  I can see that Crystal Reports for .NET Framework 4 (32 bit) was installed.  (For version 13.0.4 that was the name of the product, it has since changed to just Crystal Reports for .NET Framework.)

Next I created another test program on a different development machine that uses the default bootstrap for CR13.0.12.  I published the program.  On that same 32 bit machine I attempted to install it via ClickOnce.  I got the same error.  This leads me to believe that it is not my custom bootstrap that is the problem.  It's either a Microsoft issue with the ClickOnce deployment, or a Crystal Issue with the ClickOnce not being able to upgrade between versions.  The only other difference that I have though of is that my first test program is published from Visual Studio 2010 and targets .NET 3.5.  My second test program is published from Visual Studio 2012 and targets .NET 4.5.  But this really shouldn't make a difference if if .NET 4.5 is installed on the machine I was testing the install with, should it?

I haven't found a fix or any other explanation for this issue yet.  Any help would be appreciated.