报告适用于开发PC,但在部署它的PC上抛出异常(CrystalDecisions.CrystalReports.Engine.ReportDocument)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报告适用于开发PC,但在部署它的PC上抛出异常(CrystalDecisions.CrystalReports.Engine.ReportDocument)相关的知识,希望对你有一定的参考价值。

我使用Crystal Reports开发了一个应用程序,当我在开发PC上测试它的项目时,它在客户PC上提供了一个例外

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

该项目是使用VS 2010开发的,然后用VS 2008完成,所以我现在正在使用VS 2008进行开发,我不确定这是否会导致问题,关于安装项目我引用了以下DLL:

-CrystalDecisions.CrystalReports.Engine.dll
-CrystalDecisions.ReportSource.dll
-CrystalDecisions.Shared.dll
-CrystalDecisions.Web.dll
-CrystalDecisions.Windows.Forms.dll

所有DLL都具有相同的版本号:10.2.3600.0

然后我安装设置而不安装任何其他的.net Framework 3.5,(我是否必须安装运行时Crystal Report引擎,如果必须安装哪个版本?)。

例外细节:

System.TypeInitializationException:'CrystalDecisions.CrystalReports.Engine.ReportDocument'的类型初始值设定项引发了异常。 ---> System.IO.FileNotFoundException:无法加载文件或程序集“CrystalDecisions.ReportAppServer.CommLayer,Version = 10.2.3600.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304”或其依赖项之一。该系统找不到指定的文件。文件名:CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()中的'CrystalDecisions.ReportAppServer.CommLayer,Version = 10.2.3600.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304'

警告:装配绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值[HKLM Software Microsoft Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失。要关闭此功能,请删除注册表值[HKLM Software Microsoft Fusion!EnableLog]。

在此先感谢任何帮助。

答案

在客户端的计算机上,您需要为您的版本安装Crystal Runtime。通常,如果您使用的是VS2008,则需要为.NET Framework安装Crystal Reports 2008 Runtime Package(推荐),或者将Crystal Reports 2008 Runtime的合并模块嵌入到您自己的设置中(不推荐)。从这里:http://resources.businessobjects.com/support/additional_downloads/runtime.asp#08这将安装客户端所需的Crystal Report程序集。你有没有这样做过?

如果之后仍然有问题,则需要验证Crystal。*。dll的版本是否与客户端计算机上安装的版本相同。

如果要在这些程序集的属性上使用特定版本的水晶组件,请在VS中的“属性”中将“特定版本”更改为“True”

最后,检查是否缺少Crystal SP / HotFix,这使得程序集版本与http://wiki.sdn.sap.com/wiki/display/BOBJ/Crystal+Reports+2008+-+Version+and+Download+information+for+SPs+and+FPs不同

另一答案

运行时Crystal Report将调用该DLL来创建报告。

这就是发生在我身上的事情,我在胜利10 - 64位上运行,并使用旧的应用程序。

应用程序出现错误:

System.TypeInitializationException: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'CrystalDecisions.ReportAppServer.CommLayer, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.

我曾尝试安装CRRedist2005_X64.msi,但错误仍然存​​在,但说的有些不同。我试图安装更新的版本,但它没用。

你需要安装这个:

CRRedist2005_x86.msi

确保dll文件的版本。

CrystalDecisions.ReportAppServer.CommLayer, Version=10.2.3600.0

适用于CR2005。也许更高版本适用于较新的CR版本。

以上是关于报告适用于开发PC,但在部署它的PC上抛出异常(CrystalDecisions.CrystalReports.Engine.ReportDocument)的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01017: Flyway 在 Jenkins 上抛出的用户名/密码无效

Android MediaPlayer 在 2.1 上抛出“准备失败。:状态 = 0x1”,适用于 2.2

OpenCV SVM 在火车上抛出异常,“错误参数(只有一个类)”

休眠和 HSQLDB - 适用于 PC - Linux 上的错误

FileProvider在GetUriForFile上抛出异常

C++ 如何检测 Windows 10