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

时间:2011-09-05 08:30:06

标签: c# .net crystal-reports

我使用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.ReportAppServer.CommLayer,   Version = 10.2.3600.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304'   在CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()

     

警告:装配绑定日志记录已关闭。要启用程序集绑定   失败日志记录,设置注册表值   [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有   与程序集绑定失败相关的一些性能损失   日志记录。要关闭此功能,请删除注册表值   [HKLM \ SOFTWARE \微软\融合!EnableLog]。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

在客户端的计算机上,您需要为您的版本安装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

答案 1 :(得分:0)

运行时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版本。