首页 文章

.NET Framework 4.0中的Crystal Report

提问于
浏览
4

我们使用 Visual Studio 2010.NET 3.5 中编写了一个WPF应用程序 . 该解决方案包含8个项目 - 全部编译在 .NET 3.5 . 该应用程序使用Crystal Report . 目标操作系统是Windows 7 .

最近,由于某些第三方DLL依赖性, startup project.NET 4.0 中编译 - 这些DLL需要.NET 4.0 . 在此更改和重建解决方案之后,Crystal Report会抛出异常 .

问题发生在 ReportClass 的构造函数中 .

异常的消息:

“CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发了异常 .

InnerException的消息:

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

我以前没有在Crystal Report工作过 . 可能是造成这个问题的原因是什么?

请注意,编译为.NET 3.5时不会发生此问题 . Crystal Report用于启动项目 .

4 回答

  • 11

    这很可能是X86 / x64问题 .

    尝试将您的应用程序编译到目标86平台 .

  • 0

    这个问题让我连续两天,并且它的答案非常相似,但它最终对我来说是双重的 . 我在这里添加,希望它至少可以节省一天的时间..

    很多帖子都提到这个;转到IIS - >应用程序池 - >单击应用程序池上的右键 - >转到提前设置 - >启用32位应用程序= True

    请注意,在我的情况下,我正在64位机器上构建和部署,所以我将 True 设置为 False 并且它完成了 . 再一次,很简单但不是我认为的相关内容,所以在我做出调整之后,我的想法是空白的 .

    另一个兴趣点是确保您在部署服务器上加载了CRRuntime_xx.x.x.MSI .

    感谢大家在这一天结束时让我了解的惊人信息 .

  • 1

    转到IIS - >应用程序池 - >单击应用程序池上的右键 - >进入高级设置 - >启用32位应用程序= True

  • 2

    当你安装CR时,它应该在C:\ inetpub \ wwwroot \ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13上安装几个文件(JS,html等) . 检查您的电脑上是否存在此文件夹 . 如果没有,我认为您需要将文件夹从程序文件复制到此位置 .

相关问题