cancel
Showing results for 
Search instead for 
Did you mean: 

64 Bit Class Not Registered In Visual Studio 2019

former_member680747
Discoverer
0 Kudos
3,000

We just recently upgraded our project (Windows Forms) to Visual Studio 2019 (64 bit). The Crystal printing stopped working after the move to the new IDE. The error that I'm getting is this:

Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

My development machine specs are as follows:

  • Windows 10 Enterprise
  • 16 GB RAM
  • 64 bit processor (x64) Intel (R) Xeon (R)

I currently have the following software installed on my machine (as viewed in the Control Panel -> Programs and Features)

  • SAP Crystal Reports 2016 SP5 Version 14.2.5.2618
  • SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit) Version 13.0.0.99

The old 32 bit worked fine, but now we have migrated to 64 bit, I can't get this to work. Can you please let me know what I'm doing wrong?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

former_member680747
Discoverer
0 Kudos

Mr. Don.

Thank you so much for your guidance on this. I was able to get it to work by doing the following:

1. I installed Crystal SP27 and Oracle Developer Tools for Visual Studio 2019. You can find the OTD here: https://www.oracle.com/database/technologies/dotnet-odtvsix-vs2019-downloads.html

2. I then updated the Oracle references in the code base to now use the Oracle.ManagedDataAccess. This required of updating the connection strings to be in parity with the definitions as specified in the TNS. The TNS.ora file can generally be obtained by the DBA. An example of the connection string should be:

Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMUNITY = MYSVRCOM)(PROTOCOL = TCP) (Host = myserver.mycompany.net)(Port = 1485))) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = MYORASVR)));User Id=myID; Password=mySecret;

3. The reference in code should be:

using Oracle.ManagedDataAccess.Client;

4. In the project properties, select the Compile side tab and check the box for "Prefer 32-bit". I also set the "Target CPU" to "AnyCPU" in the drop down list. These settings will allow the Crystal Reports to work with the .NET DataSet objects which are populated by Oracle.

Answers (5)

Answers (5)

former_member746712
Discoverer
0 Kudos

Here is the screen shot for my last post, the dlls are all in X86 folder.

former_member746712
Discoverer
0 Kudos

I just installed the latest "Crystal report for VS 2019" and I am upgrading a small Winform library from VS 2008 to VS 2019, I removed all references to old CR dlls, but when I add new references with extension, I only see 32 bit dlls, I cannot see the 64 bit options, my project is 64 bits. The dlls locations are all in the following folder. My question is " are the 64 bits assemblies not registered? how Can I reference them"?

C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for.NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\
0 Kudos

As I said, don't browse to the assemblies, they are in the GAC so use the Extension option when adding the assemblies in VS. And not that's not the right place for the x64 version.

Don

former_member746712
Discoverer
0 Kudos

Since I am new user, I think I should add comment here. I have just installed latest version of "Crystal report for Visual studio" and tried to upgrade a win form library from VS 2008 to VS 2019, 64 bit. But I can only see the 32 bit assemblies from the "Add reference" --> "extension", I can see the locations are all in the "Win32_86" folder. How can I add references to the 64 bits Assemblies? are they registered? I guess this is the same question asked in this thread, but I cannot find the solution.

Thank you in advance for the help.

0 Kudos

They are in the GAC, when you remove the old assemblies and then add new ones use the Extensions to find them. Don't browse to the file themselves.

Be sure to select the x86 or x64 versions. CR runtime is for your project platform and not the OS.

Don

former_member680747
Discoverer
0 Kudos

When I browse the Extensions all I see are the DLLs located here:

C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet\CrystalDecisions.CrystalReports.Engine.dll

Is this the correct location for targeted 64 bit applications?

0 Kudos

You are using the original release, it doesn't support VS 2019.

Go here to get SP 27 and update your project:

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

Don

former_member680747
Discoverer
0 Kudos

Hi Mr. Don,

Thanks for your reply. I went ahead and had our server team install SP27 on my development machine for Visual Studio 2019. Now that I have it installed, how do I reference the new DLLs for my project? Where are they located?

Thanks