cancel
Showing results for 
Search instead for 
Did you mean: 

Detect if a specific runtime version is installed

Former Member
0 Kudos

Would the best way of checked to see if runtime components are already installed on a machine be to check the following key...

HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\CRRuntime32Version

if I was only ever installing the 32 bit version?

Or would there be a better option to use?

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

See if the following KBA is what you need:

2003551 - How to Programatically get the version of Crystal Reports for .NET runtime version




- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter

Former Member
0 Kudos

Sorry Ludek,

I should have given a bit more context. It would be in the context of a prerequisite condition inside of InstallShield.

This would be done by either checking for the presence of a registry key or lack thereof. It can also check the filesystem. I wouldn't be able to do anything programmatically at this point.

Would the Crystal Reports Runtime v13.0.10.1385 if installed using the .MSI always be found in the GAC?

Would different versions always be installed side by side in the GAC?

Or

Would the presence of a registry key value be better to distinguish different versions of Crystal.

The reasons for the question above on side by side versions is that each time we change our .Net development version of Crystal we would also want to distribute the corresponding runtime .MSI and need to check if it is already installed on the system.

Thanks,

former_member183750
Active Contributor
0 Kudos

Ahhh - got it.

For checking as a prerequisite, all I can see is the reg key, or file path to crpe32.dll would be best as this dll is always needed. App will not run without it.


Would the Crystal Reports Runtime v13.0.10.1385 if installed using the .MSI always be found in the GAC?

Yes, the assemblies will always be in GAC.


Would different versions always be installed side by side in the GAC?

Yes, different versions are side by side compatible. So, say CR 2008 and CRVS would show you that there are two versions of the assemblies. E.g.;

CrystalDecisions.CrystalReports.Engine would show version 12.0.200.0 and 13.0.2000.0.

Service Packs are not side by side compatible. E.g.; SP 9 and SP 10 do not coexist. If SP 9 is there already and you try to install SP 10, the install will inform you that the existing runtime must be uninstalled before SP 10 can proceed.


Would the presence of a registry key value be better to distinguish different versions of Crystal.

Different versions of Crystal Reports, yes. Different versions of Crystal Reports Service Packs, no.

Perhaps the real question is, why the concern?

- Ludek

0 Kudos

Also, CR 2011 is version 14.0 and CR 2013 is Version 14.1, they are not side by side, same version just reversioned.

So you should not have CR for VS and CR 2013 on the same PC. Unfortunately there are 6 or so version 14 dll's that are included with CR for VS and they can mess the Designer up.

Don

Former Member
0 Kudos

Ludek/Don,

To answer your question about why I have the concern...

Our development team has started using Crystal for VS v.13.0.10.1385 found here

As a result we trying to make things easier for our customers by installing the runtime for Crystal from our products installation. This is done inside InstallShield by adding the 32bit .MSI for the runtime as a prerequisite and setting it to install in silent mode. This works fine.

The concern was to make sure at least SP10 was installed since that was the developer version we have already started with.

InstallShield allows you to look for a particular file on the file system and then look at its file version info. So I set it up to currently look for the file...

[WindowsFolder]assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll

and to look for a file version less than 13.0.10.1385 or to not find the file at all to trigger the installation.

But now I am uncertain if this logic is valid based on your comments. If the client machine already has version 13 SP1 - SP9 the Crystal Install may fail silently and since we are using SP10 we may not get the expected results from our application. Any runtime above v13 SP10 I would assume would still function properly.

Any suggestions?

Answers (0)