xml地图|网站地图|网站标签 [设为首页] [加入收藏]

DLL重定向处理,net程序集引用不匹配的问题

来源:http://www.ccidsi.com 作者:集成介绍 人气:64 发布时间:2019-05-05
摘要:说明 最近正在做的种类批次作用涉及第壹方插件,而第3方插件需依赖4.*版本的Newtonsoft.Json.dll,由于现成成效已经接纳陆.*本子的Newtonsoft.Json.dll,故选取了dll共存的不二等秘书籍来适应
说明

最近正在做的种类批次作用涉及第壹方插件,而第3方插件需依赖4.* 版本的Newtonsoft.Json.dll,由于现成成效已经接纳陆.*本子的Newtonsoft.Json.dll,故选取了dll共存的不二等秘书籍来适应项目要求。


后天起步asp.net mvc 程序,当中也使用了web api ,autofac等,为了版本包容性难题,将mvc和 web api 的版本控制到5.二.0.0,Newtonsoft.Json的版本是6.0.0.0,但结果要么报错了

要是一样档案的次序中分歧第二方类库分别选择了分歧版本的Newtonsoft.Json的景色下,能够在主项目布局文件中增添以下节点,将0.0.0.0-11.0.0.0此区间的Newtonsoft.Json使用成套勒迫指向到9.0.0.0本子。

• 方案

一.先是相比较下三个本子的dll文件对应publicKeyToken,可在VS命令行工具下查看,具体如下:

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

d:Program FilesMicrosoft Visual Studio 10.0VC>SN -T "E:Newtonsoft.Json.dll"

Microsoft(R) .NET Framework 强名称实用工具 版本 4.0.30319.1
版权所有(C) Microsoft Corporation。保留所有权利。

公钥标记为 30ad4fe6b2a6aeed

二.若一个本子的dll文件对应publicKeyToken一致,则能够使用以下办法进行重定向管理,在Web.config扩大一下剧情:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
    <dependentAssembly>  
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />  
      <codeBase version="6.0.3.17227" href="binNewtonsoft.Json.dll" />  
      <codeBase version="4.5.0.0" href="binredirectNewtonsoft.Json.dll" />  
    </dependentAssembly>  
</assemblyBinding>  
</runtime>

不许加载文件或程序集“Newtonsoft.Json, Version=4.伍.0.0, Culture=neutral, PublicKeyToken=30ad4fe六b②a6aeed”或它的某1个依靠项。找到的先后集清单定义与程序集引用不匹配。 (相当来自 HRESULT:0x80131040)

日记音信:调用程序集: System.Net.Http.Formatting, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf385陆ad364e35。

用.net reflector查看该dll确实是信赖Newtonsoft.Json, Version=4.五.0.0

由此找到该dll的门道发掘是Microsoft.AspNet.WebApi.Client包的,于是

*
*查看了Microsoft.AspNet.WebApi.Client 5.贰.0的nuget详细新闻,依赖项的版本是Newtonsoft.Json(>= 四.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所在门路

网络也找了一下还要设有五个版本的消除方法,留作后续研讨。

此方案适用于高版本的Newtonsoft.Json向下包容!

 

澳门皇家国际娱乐,  <runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

本文由68399皇家赌场发布于集成介绍,转载请注明出处:DLL重定向处理,net程序集引用不匹配的问题

关键词: 68399皇家赌场 NET 不匹配 程序

上一篇:5929皇家赌场js常用util

下一篇:没有了

最火资讯