加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – System.IO.FileLoadException:无法加载文件或程序集Log4n

发布时间:2020-12-15 04:23:01 所属栏目:百科 来源:网络整理
导读:我在解决方案中添加了一个现有项目.当我使用MSTest运行程序运行所有单元测试时,我在几个测试中得到以下错误: Message: Test method soandso threw exception: System.IO.FileLoadException: Could not load file or assembly ‘log4net,Version 1.2.12.0,Cu
我在解决方案中添加了一个现有项目.当我使用MSTest运行程序运行所有单元测试时,我在几个测试中得到以下错误:

Message: Test method soandso threw exception:
System.IO.FileLoadException: Could not load file or assembly ‘log4net,Version 1.2.12.0,Culture=neutral,PublicKeyToken=669e0ddf0bb1aa2a’ or one of it’s dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT:0x80131040)

我知道其他人也有同样的问题,关于这个话题还有其他问题和答案.但我尝试了很多东西,但没有任何帮助.
我们使用的log4net版本是1.2.13.0.

我检查了FUSLOGVW.exe是否存在绑定错误. log4net显示添加的程序集和一些未知程序集.
程序集中log4net的引用显示了随NuGet添加的版本1.2.13.0.所以它可能是一个依赖程序集导致所有这些麻烦.
我尝试将log4net更改回版本1.2.12.0,但我仍然收到相同的错误消息.

当我使用MSTest testrunner运行所有测试时,会出现这些错误.当我只运行失败的测试时,它们会通过.当我单独运行它们时,它们也会通过.
我尝试了绑定重定向,但我是为测试而不是测试程序集的程序集做的.我不知道如何为测试程序集做到这一点 – 没有配置.
当我使用Resharper测试运行器运行测试时,它们也会通过(但其他测试失败). TFS Build服务器运行MSTest-runner,因此我需要使用MSTest.

有谁知道如何解决这个问题?

解决方法

找到了罪魁祸首.就像我怀疑的那样,依赖程序集引用了log4net 1.2.12.0.用于找出的工具是dotPeek.幸运的是,我们确实拥有依赖程序集的源代码,我们可以将其更改为引用最新的log4net.这解决了这个问题.

因此,如果有人遇到类似问题,请使用dotPeek或类似工具浏览依赖程序集,以找出它引用的程序集版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读