RRM*_*RRM 7 c# log4net crystal-reports
请原谅我,如果它之前已被回答,但我在网上搜索,发现只有绝望的人问我的问题,但没有人给出我可以使用的任何答案.
我正在使用Crystal Reports在C#Visual Studio 2010中开发一个应用程序.我正在开发32位系统.一切正常.
现在我试图在另一台64位系统的计算机上运行它,安装了Crystal Reports并发生了一些可怕的错误.
************** Tekst wyj?tku **************
System.TypeInitializationException: Inicjator typów zg?osi? wyj?tek dla typu
'CrystalDecisions.ReportSource.ReportSourceFactory'. ---> System.TypeInitializationException:
Inicjator typów zg?osi? wyj?tek dla typu 'CrystalDecisions.Shared.SharedUtils'. --->
System.IO.FileLoadException: Nie mo?na za?adowa? pliku lub zestawu
'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' lub jednej z jego zale?no?ci.
Run Code Online (Sandbox Code Playgroud)
在那里请原谅我一些波兰语.它基本上意味着它找不到某些特定版本的log4net.dll文件,这显然必须被某些东西使用.
许多地方都描述了这个问题:
http://scn.sap.com/thread/1857957
据我所知,我的应用程序使用/期望此文件的某些版本和64位计算机上安装的Crystal Reports使用另一个版本.
浏览互联网后,我不知道应该采取什么措施来纠正它.
我真的很感激一些"傻瓜教程"如何处理它.
哦,我的应用程序需要构建为32位并在64位上运行.不可能将它构建为64位,另一件事会停止工作:(
嗯,这里反应不多:)从那时起我就自己学到了一些东西,并且认为我会与可能遇到类似问题的任何可怜的初学者分享我的知识.
所以有像GAC这样的东西 - http://en.wikipedia.org/wiki/Global_Assembly_Cache 你可能会认为它是你的程序使用的库和驱动程序的集合.
它位于您的计算机上的c:/ windows/assembly中,但它是一个隐藏目录,因此首先必须启用它.
在我的64位计算机上,它包含GAC_32和GAC_64子目录.在GAC_64中有log4net:
c:\Windows\assembly\GAC_64\log4net\1.2.10.0__692fbea5521e1304\
Run Code Online (Sandbox Code Playgroud)
在GAC_32中什么都没有.所以我创建了目录并将我32台计算机中的相应文件复制到其中并且它有效.
c:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\
Run Code Online (Sandbox Code Playgroud)
不久之后,我遇到了另一个错误,但这是一个不同的故事
CrystalDecisions.CrystalReports.Engine.ReportDocument'. ---> System.IO.FileNotFoundException: Nie mo?na za?adowa? pliku lub zestawu 'CrystalDecisions.ReportAppServer.CommLayer, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
Run Code Online (Sandbox Code Playgroud)
通常期望在32位计算机上使用Crystal Reports构建的任何东西在尝试在64位计算机上运行时都会出现问题.对于这些驱动程序,SAP确实是一个糟糕的工作.