8

如果之前已经回答过,请原谅我,但我搜索了网络,发现只有绝望的人在问我的问题,但没有人给出任何我可以使用的答案。

我正在 C# Visual Studio 2010 中开发一个使用 Crystal Reports 的应用程序。我正在 32 位系统上开发它。一切正常。

现在我试图在另一台安装了 Crystal Reports 的 64 位系统的计算机上运行它,并且发生了一些可怕的错误。

************** 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.

请原谅我那里的一些波兰语。这基本上意味着它找不到某些特定版本的 log4net.dll 文件,显然它必须被某些东西使用。

这个问题在很多地方都有描述:

log4net 没有记录并抛出错误

http://scn.sap.com/thread/1857957

我了解我的应用程序使用/期望此文件的某个版本,而安装在 64 位计算机上的 Crystal Reports 使用另一个版本。

浏览互联网后,我仍然不知道应该采取哪些步骤来纠正它。

我将非常感谢一些“傻瓜教程”如何处理它。

哦,我的应用程序需要构建为 32 位并在 64 位上运行。不可能将其构建为 64 位,另一件事将停止工作:(

4

5 回答 5

15
于 2015-08-26T09:30:49.983 回答
7

好吧,这里没有太多回应 :) 从那时起我自己也学到了一些东西,并认为我会与可能遇到类似问题的任何可怜的初学者分享我的知识。

所以有像 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\

在 GAC_32 中什么都没有。所以我创建了目录并将适当的文件从我的 32 计算机复制到它并且它工作。

c:\Windows\assembly\GAC_32\log4net\1.2.10.0__692fbea5521e1304\

片刻之后,我遇到了另一个错误,但这是一个不同的故事

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

一般来说,在 32 位计算机上使用 Crystal Reports 构建的任何东西都可能在尝试在 64 位计算机上运行时出现问题。SAP 在这些驱动程序上确实做得很糟糕。

于 2013-05-29T10:08:44.460 回答
6

您是否在目标计算机上安装了适用于 .NET 框架(64 位)的 SAP Crystal Reports 运行时引擎?如果没有,您可以尝试从此链接安装它,看看它是否能解决您的问题。

于 2013-06-11T11:18:32.590 回答
1

另外,如果你在 64 位平台上只安装了 32 位版本,你会得到同样的 Log4net 错误;需要 32 位和 64 位版本。

奇怪的是 64 位 msi delploys DLL 在 SAP 32 位文件夹(C:\Program Files (x86)\BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet\ )中,32 位设置没有.

于 2016-08-11T14:56:36.313 回答
-1

就我而言,安装 CR 64 位不是一个选项,但我能够通过在 IIS 的应用程序池上启用 32 位应用程序来解决此问题。(见这个答案)。

于 2018-12-19T15:03:07.077 回答