【发布时间】:2012-08-25 02:15:43
【问题描述】:
我们有一个使用 Visual Studio 2010 在 .NET 3.5 中编写的 WPF 应用程序。该解决方案由 8 个项目组成 - 全部在 .NET 3.5 中编译。该应用程序使用 Crystal Report。目标操作系统是 Windows 7。
最近,启动项目是在 .NET 4.0 中编译的,因为某些 3rd 方 DLL 依赖项 - 这些 DLL 需要 .NET 4.0。在此更改并重建解决方案后,Crystal Report 抛出异常。
问题出现在ReportClass的构造函数上。
异常消息:
类型初始化器 'CrystalDecisions.CrystalReports.Engine.ReportDocument' 抛出了一个 例外。
InnerException 的消息:
"正在检索具有 CLSID 的组件的 COM 类工厂 {4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B} 由于以下原因而失败 错误:80040154 类未注册(HRESULT 异常: 0x80040154 (REGDB_E_CLASSNOTREG))。”
我以前没有在 Crystal Report 工作过。这个问题的原因可能是什么?
请注意,编译为 .NET 3.5 时不会出现此问题。 Crystal Report用于启动项目。
【问题讨论】:
-
是否需要将 Crystal Reports DLL 注册为 COM 对象?
-
我认为您需要使用 .net 4.0 构建所有项目,现在不知道具体原因。
-
@zeencat:不知道你是什么意思。我没有在 3.5 中注册 DLL。
-
我只是想知道这是否是您的问题,因为我在使用不同的 dll 时遇到了类似的错误。这对我有用,可能是在黑暗中的一个完整的镜头。 msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.71).aspx
-
我在 [这里][1] 找到了解决方案。这解决了我的问题。 [1]:stackoverflow.com/a/2892577/68304
标签: c# crystal-reports crystal-reports-2010