架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4231|回复: 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”未能加载的原因。


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

错误原因

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



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

官方例子:

  1. <configuration>  
  2.    <runtime>  
  3.       <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
  4.          <dependentAssembly>  
  5.             <assemblyIdentity name="myAssembly"  
  6.                               publicKeyToken="32ab4ba45e0a69a1"  
  7.                               culture="neutral" />  
  8.             <bindingRedirect oldVersion="1.0.0.0"  
  9.                              newVersion="2.0.0.0"/>  
  10.          </dependentAssembly>  
  11.       </assemblyBinding>  
  12.    </runtime>  
  13. </configuration>  
复制代码


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

  1. <dependentAssembly>
  2.         <assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
  3.         <bindingRedirect oldVersion="0.0.0.0-3.3.1.0" newVersion="3.3.1.0" />
  4.       </dependentAssembly>
复制代码






上一篇:我来了,请多关注关注,互相学习
下一篇:【解决方案】本次安装Visual Studio 所用的安装程序不完整
帖子永久地址: 

架构师_程序员 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与架构师_程序员享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和架构师_程序员的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、架构师_程序员管理员和版主有权不事先通知发贴者而删除本文

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

Mail To:help@itsvse.com

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

GMT+8, 2019-10-23 10:28

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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