我有一个闪亮的WPF(4.0)应用程序,我需要添加Crystal Reports。我为VS2010下载并安装了CR,之后我们购买并安装了Crystal Reports 13(其中包含WPF CrystalReportsViewer)。
作为测试,我在Visual Studio中创建了一个新的“Crystal Reports WPF应用程序”项目。我创建了一个报告,将其链接到我的数据库(Sql Server),并预览了报告。一切都很好。
然后我将CrystalReportsViewer窗口复制到我的“真实”应用程序(相同的机器和框架)中,添加了相同的引用并尝试运行相同的代码:
ReportDocument _report;
this._report = new ReportDocument();
this._report.Load(@"CrystalReport1.rpt");
this.reportViewer.ViewerCore.ReportSource = _report;
然而,在我的“真实”应用程序中,它在第二行突然爆炸,出现错误:
Retrieving the COM class factory for component with CLSID
{4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
我还能做什么?我不想将整个项目添加到测试应用程序中!
我从第3版开始就一直在使用Crystal Reports,而在任何版本中都没有使用它,它已经干净地安装,注册,构建报告,将它们添加到应用程序并进行部署。您认为在13个版本之后,他们要么能够做到正确,要么我的各个雇主会选择其他报告工具!
答案 0 :(得分:1)
知道了。在配置中,需要将一个解决方案从“任何CPU”更改为“x86”。
答案 1 :(得分:1)
安装独立的x64和x86软件包为我解决了这个错误。