c# - C#'CrystalDecisions.Shared.SharedUtils'的类型初始值设定项引发异常?

我正在做一个项目,遇到了一个问题,运行代码时,会得到错误消息:


The type initializer for 'CrystalDecisions.Shared.SharedUtils' threw an exception



消息的标题为" TypeInitializerException was unhandled" .

我在这一行代码中收到了这个错误:


this.crystalReportViewer = new CrystalDecisions.Windows.Forms.CrystalReportViewer();



我一直在寻找解决这个问题的方法,我还尝试了平台目标作为x64 ,但是,我收到了一个新的错误:


The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.



此消息的标题为" InvalidOperationException was unhandled",错误就在这一行上:

 
db.Open();



 

db,当然,被设置为新的OleDbConnection(connection),

尝试下载新的URL file:///C:/Users/Will/Desktop/Client_Manager/SyndicateII/bin/Debug/log4net.DLL. ERR : Failed to complete setup of assembly (hr = 0x8007000b) . Probing terminated .


 StackTrace:


 at CrystalDecisions.Shared.SharedUtils..cctor()


 InnerException: 



时间:


InnerException: System.BadImageFormatException


 Message=Could not load file or assembly 'log4net, Version=1.2.10.0,


 Culture=neutral, PublicKeyToken=692fbea5521e1304'


 or one of its dependencies. An attempt was made to load a program


 with an incorrect format.



因此,log4net有多种版本的不同体系结构,你可能使用了错误的版本的log4net,或你复制的程序集错误,日志的这一部分似乎也相关:


LOG: Attempting download of new URL


file:///C:/Users/Will/Desktop/Client_Manager/SyndicateII/bin/Debug/log4net.DLL.


ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.



你可以选择执行这个操作,转到IIS,并将应用程序池设置为仅32位应用程序。

(当然,你的应用程序可以只在64位上运行。 在这种情况下,我认为安装CrystalReports的64位可再发行组件应该可以解决此问题),

我也遇到了相同的问题,32bit个应用程序在64bit服务器上运行,我安装了64bit运行时,上面的异常被抛出,安装32bit版本后,所有工作均按预期运行。

我为此错误所做的是安装CrystalReport运行时。 似乎缺少一些 dll 。 请检查这里发布的软件包 水晶报表 运行时. NET 4.0 ( 64位 ) 。

确保安装了适合你环境的正确版本,请尝试使用64位安装程序而不是32位安装程序,因为它们都可以正常安装,但是错误的安装程序将导致上述错误。

问题是 水晶报表 驱动程序没有安装在客户端,它们位于 水晶报表 主目录和子文件夹中,命名为 crystal.forms 和 crystal.shared 和 crystal suport等。

...