在.NET Framework 4.0中的Crystal Report(Crystal Report

2019-09-21 23:30发布

我们WPF应用程序使用.NET编写3.5使用Visual Studio 2010。 该解决方案由8个项目-在.net 3.5所有编译。 该应用程序使用水晶报表。 目标操作系统是Windows 7。

近日, 启动项目被编译在.NET 4.0中,由于一些第三方DLL的依赖-这些DLL需要.NET 4.0。 这种变化和重建的解决方案后,水晶报表抛出异常。

发生在构造函数的问题ReportClass

异常的消息:

对于“CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值引发异常。

的InnerException的消息:

“:(从HRESULT异常:0x80040154的(REGDB_E_CLASSNOTREG))80040154类未注册检索COM类工厂具有CLSID部件{4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B}失败,由于下面的错误”。

我没有在水晶报表工作过。 可能是什么这个问题的原因是什么?

请注意,当作为.NET 3.5编译不会发生此问题。 水晶报表在启动项目中使用。

Answer 1:

这很可能是X86 / X64的问题。

尝试编译您的应用程序的目标86平台。



Answer 2:

这个问题让我2天,其遍布具有非常相似的答案的地方,但它结束了对我来说是双重的。 我加入这里,希望这样可以节省至少有人每天..

很多帖子提到这一点; 转到IIS - >应用程序池- >点击您的应用程序池,右键- >转到高级设置- >启用32位应用程序=

请注意,在我的情况我是建设和64位计算机上部署,所以我设置时 ,它做到了。 再次,很简单的,但不是我想到的是有关,所以我的头脑一片空白,以它后,我所做的调整。

感兴趣的另一点是,以确保你确实有CRRuntime_xx.xxMSI加载部署服务器上。

谢谢大家这里它让我走过的日子结束了惊人的信息。



Answer 3:

转到IIS - >应用程序池 - >点击您的应用程序池,右键 - >转到高级设置 - >启用32位应用程序=真



Answer 4:

当您安装CR它应该安装在C少的文件(JS,HTML等等等等):\的Inetpub \ wwwroot的\ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13。 检查您的PC上存在此文件夹。 如果不是这样,我想你需要从程序文件的文件夹复制到这个位置。



文章来源: Crystal Report in .NET Framework 4.0