错误:无法加载log4net程序集

我想解决这个错误:

无法加载文件或程序集’log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304’或其依赖项之一。 系统找不到指定的文件。“此错误位于web.config文件中。

当我将log4net.dll复制到我的webapp的bin目录时,我得到了一个

无法加载文件或程序集’log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。

web.config文件中也会发生此错误。

更改版本和公钥令牌以匹配文件非常容易,以便正确加载程序集。 当我这样做时,我的网站运行完美,除了reportViewer对象。 然后它会在reportViewer标记处抛出原始错误,而不是web.config。

我的假设是,如果我安装了所请求的log4net.dll版本,我的问题就会得到解决。 但我不知道它是哪个文件,或者在哪里找到它。 我通过下载log4net 1.2.10并尝试下载中的每个dll来检查显而易见的事。

我应该提一下,该网站在我的开发机器上运行没有问题,但在发布到我的服务器时却没有。

我在Server 2008 R2操作系统上运行asp.net网站,.NET 4.0,IIS 7。 我已经为64位安装了Crystal Reports 13.0.1(我的机器是64位)。

我该如何解决这个问题?

编辑:为了回应@Kwvian的回答,我已经对我的web.config文件进行了更改。 我仍然得到清单定义与程序集引用不匹配的错误。 抛出此错误的代码是:

 Line 33:  

这里有几个可以解决的问题:

  1. 32位版本的log4net.dll的公钥标记与Crystal Reports使用的标记冲突 。 要validation是否存在此问题,请在所有.csproj文件中搜索“ 692fbea5521e1304 ” – 如果您看到对CrystalDecisions log4net的引用,则表明您遇到此问题。
  2. 32位版本的log4net.dll与为64位或AnyCPU架构编译的dll冲突 。 如果您遇到此问题,您将找到如下所示的引用。 您可以通过将应用程序池重新配置为以32位运行并检查应用程序是否运行来validation问题 – 如果有,则会出现此问题。
  

PublicKeyToken = 1b44e1d426115821 ,processorArchitecture = MSIL “>

尝试将此添加到您的web.config。 它基本上告诉运行时你可以为两个版本加载相同的程序集

          

您需要将1.2.10.0替换为bin文件夹中实际拥有的版本。

我的代码中遇到了这个问题。 有人使用的项目之一有Log4Net版本冲突。 他们使用12.2.10,我有12.2.13。 所以为了解决这个问题,我摆脱了我的参考,并找到了他们的参考dll。 我使用了它,它完美地工作。

要查找引用,Microsoft Visual Studio具有浏览器function。 你可以使用它来获取DLL。 要查找dll,可以单击项目中的引用,然后单击要查找的引用。 在这种情况下Log4Net。 它将显示一个依赖项列表,另一个log4net应该在选定的Log4Net附近,并且应该有一些文本显示当前所选dll引用的位置。 您可以在这里找到参考。

MSDOS

 -- Create a virtual disk subst t: C:\Windows\assembly -- Delete log4net x64 assembly del t:\GAC_64\log4net\1.2.10.0__692fbea5521e1304\log4net.dll -- remove the virtual disk subst t: /d 

对于您的问题,我建议您在refereneces中删除/删除此dll并重新安装,以下是如何在VS 2013上正确安装Log4Net:

1)确保通过以下方式打开Nuget套餐管理器实用程序的nuget.org包源:右键单击项目(不是解决方案),然后在左下角选择“Manague NUGet Packages …”选择“Settings”,然后选择“Package Manager”然后选择“可用包源”下的“包源”选择“nuget.org”同时选中“Machine-wid包源”,单击“确定”

2)你需要管理NUGet包然后在左窗格中选择“Online”,然后搜索“log4net”,它将从apache log4j移植,然后安装它。 完成后,您将在项目的“参考”下找到它

我还附上了截图。

请享用!

在此处输入图像描述

在此处输入图像描述