我正在为使用 Crystal Reports API 显示和打印表单的客户部署桌面应用程序。我正在使用 InstallShield 2012 构建安装程序。我还包括了 .NET 4.0 Framework 以及所有 Crystal 程序集。我有 2 个(有点相关的)问题:
1) 每当我试图在客户端机器上运行应用程序时,我都会收到以下错误:
The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument'
threw an exception.
我不知道我在这里忘记了什么。 CrystalDecisions.CrystalReports.Engine
dll 已在 GAC 中正确注册,其他 10 个 Crystal 程序集也是如此。
2) I have asked this question on the SAP forums ,我被告知我需要包含 .NET 2.0 Framework 和 .NET 4.0 Framework。我尝试在我的安装程序包中包含 .NET 2.0 可再发行组件,但安装程序没有安装它。安装程序是否看到我安装了 4.0,所以它会跳过 2.0 安装?
最佳答案
这是对我有用的:
如果您在 64 位机器上安装,请确保“构建”选项卡下的应用程序属性将“任何 CPU”作为平台目标,如果有选项,请取消选中“首选 32 位”复选框. Crystal 对 32/64 位程序集非常敏感,并做出了一些非常违反直觉的假设,这些假设很难排除故障。
关于c# - 'CrystalDecisions.CrystalReports.Engine.ReportDocument' 的类型初始值设定项抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658300/