Crystal Report is not opening for 64 bit machines

Viewed 22195

My reports work fine on a 32 bit machine but won't open on 64 bit. 64 bit is required because loading data on one of the screen causes a memory issue - so it can't work on 32 bit.

  1. Windows 10 64 bit
  2. Installed Crystal Reports Tried installing 13.0.20(latest) and restarting PC but didn't work.
  3. Application Target Framework 4.6.2 (i even tried it on 4.0 but same error)
  4. Using Visual Studio 2017 Community (tried VS 2015)
  5. Platform x64 (not AnyCPU)
  6. Reports are being generated by passing DataTable, no active connection or ConnectionString in reports
  7. Error Message

enter image description here

Edit # 1

  1. Web.config includes useLegacyV2RuntimeActivationPolicy="true"
  2. DataTables in x86 and x64 are sameenter image description here

Edit # 2

Source Code for showing the report is

CrystalDecisions.CrystalReports.Engine.ReportClass c = new 
    CrystalDecisions.CrystalReports.Engine.ReportClass();

c.FileName = System.IO.Path.Combine(Root_Path, 
    "Reports", "Prod", mFileName);

c.Load();
c.SetDataSource(dt);  // dt => DataTable
c.SetParameterValue("prmSystemDate", Current_Date);

frmReportViewer v = new frmReportViewer();
v.ReportClass = c;
v.Show();

And frmReportViewer FormLoad is

private void frmReportViewer_Load(object sender, EventArgs e)
        {
            CRViewer.ReportSource =  ReportClass;
            //CRViewer => 
            //CrystalDecisions.Windows.Forms.CrystalReportViewer
        }

Have I gone wrong somewhere?

Edit # 3

DataTable on x86 and x64 are same. (saved the datatables in xml and both files are exactly the same).

Process Monitor shows that my program performs CreateFile operation on following files

C:\WINDOWS\Microsoft.Net\assembly\GAC_64\CrystalDecisions.Web\v4.0_13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\CrystalDecisions.Web\v4.0_13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll C:\WINDOWS\Microsoft.Net\assembly\GAC\CrystalDecisions.Web\v4.0_13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll C:\WINDOWS\assembly\GAC_64\CrystalDecisions.Web\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll

All fails with PATH NOT FOUND Result. It succeeds on

C:\Windows\assembly\GAC_MSIL\CrystalDecisions.Web\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll

and then two BUFFER OVERFLOW occurs on this same file.

It only happens on x64. There is no operation related with CrystalDecisions.Web.dll on x86.

What does it indicate?

5 Answers

Do you have any data source or connection (e.g. odbc\dao) with 32-bit in your Crystal Report DataSource? It is also strange that you already installed 32-bit and 64-bit CR runtimes, why you installed CR versions for visual studio? I had a similar problem as yours, but after replaced 32-bit MDB and DAO with DataSet, everything becomes fine. I installed both 32-bit and 64-bit CR runtimes.

Related