架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6205|回复: 0

[资料] .net/c# 引用dll版本冲突解决办法

[复制链接]
发表于 2018-6-4 16:02:54 | 显示全部楼层
未能加载文件或程序集“Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

程序集加载跟踪: 下列信息有助于确定程序集“Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e”未能加载的原因。
QQ截图20180604155252.jpg

有时候,我们会看到上面的错误。

错误原因

A项目引用了xxx.dll,B项目也引用了xxx.dll,A项目引用了B项目,如下图:

QQ截图20180604155748.jpg

A项目和B项目都引用了xxx.dll,但是,A项目引用的是高版本的dll,B项目引用的是低版本的dll,当A项目运行的时候,就会报错,找不到低版本的dll

解决办法

利用<bindingRedirect>元素,将一个程序集版本重定向到另一个版本。

oldVersion       

  • 必需的特性
  • 指定最初请求的程序集的版本。 程序集版本号的格式是major.minor.build.revision。 该版本号的每个部分的有效值介于 0 和 65535 之间。
  • 你还可以按下列格式指定版本范围:
  • n.n.n.n-n.n.n.n



newVersion

  • 必需的特性。
  • 指定要使用而不是最初请求的版本格式的程序集的版本: n.n.n.n
  • 此值可以指定 oldVersion 之前的版本。



文档链接:https://docs.microsoft.com/zh-cn ... ingredirect-element

官方例子:



所以,我的解决办法是在web.config设置如下:







上一篇:我来了,请多关注关注,互相学习
下一篇:【解决方案】本次安装Visual Studio 所用的安装程序不完整
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-5-31 07:02

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表