cancel
Showing results for 
Search instead for 
Did you mean: 

Determine if CR Runtime is Installed ?

Former Member
0 Kudos

I need a way to determine if the cr runtime is installed before attempting to run any reports and getting the message " 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. .........."

I am appreciative of any available assistance.

Thank you, Doyle

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

No quick; here is how to do it. Couple of ideas:

  1. Search the hard drive for CRW32.exe - this will be simplest solution
  2. Seach registry (but then you'll need to know the registry path for all versions of CR)

- Ludek

Follow us on Twitter

Got Enhancement ideas? Try the SAP Idea Place

Answers (3)

Answers (3)

Former Member
0 Kudos

I've been able to follow Bushan's advice and check the GAC programmaticly via a call (in C#) such as this:

try
{
    //13.0.2000.0 is Crystal Reports for VS 2010
    var a = System.Reflection.Assembly.Load("CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral,PublicKeyToken=692fbea5521e1304");
}
catch (System.IO.FileNotFoundException)
{
    //Not Installed
}
catch
{
    //Runtime is in GAC but something else prevents it from loading. (bad install?, etc)
}

However, I've discovered, that the Full Assembly name used above in the Load call is the exact same for all four of the following versions of the runtime:

  • Crystal Reports for VS 2010 SP 1 32bit Runtime
  • Crystal Reports for VS 2010 SP 1 64bit Runtime
  • Crystal Reports for VS 2010 SP 2 32bit Runtime
  • Crystal Reports for VS 2010 SP 2 64bit Runtime

My application is 32 bit and will crash if the 64bit runtime is installed.  Is there an additional check that can be used to check whether the 32 or 64 bit runtime was installed?  And even whether SP1 or SP2 is installed?

former_member183750
Active Contributor
0 Kudos

If the 64 bit runtime is already there, then it will be in the C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64 directory. Perhaps you can search for that. Alternatively the Registry can also be searched for the 64 bit install.

The more interesting thing is that your 32 bit app crashes if there is the 64 bit runtime - perhaps a subject for another forum post(?).

- Ludek

Former Member
0 Kudos

Thanks Ludek,

Do you know the specifics for searching the registry?  (What keys and values to look for?) I don't want to rely on a directory location as it could be installed in a custom location.  Also different versions of Windows could install it in different default locations:

  • 32bit Windows: C:\Program Files
  • 64bit Windows with 32bit Runtime: C:\Program Files (x86)
  • 64bit Windows with 64bit Runtime: C:\Program Files

I'll have to revisit internally the specifics of my comment regarding crashing with the 64bit runtime installed.  I'll get more specifics, dive into it deeper, and formulate a forum post as necessary.

former_member183750
Active Contributor
0 Kudos

The following are the keys that get created on install of CRVS2010, 32 and 64 bit:

HKEY_CURRENT_USER\Software\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0

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

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

- Ludek

0 Kudos

We use a software installation tool that includes predefined scripts to find out if the crystal reports runtime is installed or not.

I am not completely sure how the script works but looking at it, it appears that it checks whether a windows installer setup is presently installed on the system by using the windows installer Product Code (Guid).

In order to see if the 32 bit runtime is installed it looks for GUID: {8D6181F3-CACB-4B48-8B08-981F3A7F318B}

In order to see if the 64 bit runtime is installed it looks for GUID: {0441D301-5C34-4DC6-B7C8-0727344AA220}

Two questions for Ludek or someone from SAP:

1) Is this not a bullet proof way of knowing if the crystal reports runtime is install or not assuming we use the provided msi to install the runtimes?

2) Are those GUID values the same for the original msi as well as the msi used to install SP1 and SP2 runtimes?

Thanks.

former_member188030
Active Contributor
0 Kudos

Check for 'CrystalDecisions.CrystalReports.Engine' assembly at

C:\Windows\assembly folder (GAC)

To check the version Right click on the above dll, go to properties , click the version tab.

- Bhushan.