关于.net程序集引用不匹配的问题
2018-06-17 19:08:44来源:未知 阅读 ()
今天启动asp.net mvc 程序,其中也用到了web api ,autofac等,为了版本兼容性问题,将mvc和 web api 的版本控制到5.2.0.0,Newtonsoft.Json 的版本是6.0.0.0,但结果还是报错了
未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
日志信息: 调用程序集: System.Net.Http.Formatting, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35。
用.net reflector查看该dll确实是依赖Newtonsoft.Json, Version=4.5.0.0
通过找到该dll的路径发现是Microsoft.AspNet.WebApi.Client包的,于是
查看了Microsoft.AspNet.WebApi.Client 5.2.0的nuget详细信息,依赖项的版本是 Newtonsoft.Json (>= 4.5.11) ,按照信息是可以的,但是怎么还报错了?
后来百度了一下:让.NET程序兼容不同版本的Dll文件
结果找到如下解决方法:在webconfig的runtime->assemblyBing节点下添加
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="4.5.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
结果运行成功
ps:用此方法的前提是两个版本的dll的publicKeyToken要一致,查看publickeytoken可以打开SDK命令提示,输入命令:sn -T dll所在路径
网上也找了一下同时存在两个版本的解决方法,留作后续研究。
http://www.cnblogs.com/EugeneMay/p/4249709.html
http://stackoverflow.com/questions/2460542/using-different-versions-of-the-same-assembly-in-the-same-folder
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:C#基础---值类型和引用类型
下一篇:C#之集合
- uniGUI 应用程序体系结构(11) 2020-02-04
- Delphi 设置程序图标为系统默认图标 2019-12-09
- Delphi - 调用外部程序并阻塞到外部程序中 2019-09-23
- FastReport 程序员手册 2019-08-16
- SuperObject Delphi 的 JSON 属性乱序 - 操作类改造 - 关于 2018-11-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash