我使用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]。
提前感谢您的帮助。
答案 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,但仍然发生错误,但说法有所不同。 我试图安装较新的版本,但这没用。
您需要安装此程序:
确保dll文件的版本。
CrystalDecisions.ReportAppServer.CommLayer, Version=10.2.3600.0
用于CR2005。也许更高的版本用于更新的CR版本。