• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#.NETnewtonsoft.json多版本冲突解决

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

A.DLL 引用了6.0 的 newtonsoft.json  (V2 运行时),

B.DLL 引用了10.0 的 newtonsoft.json (V4 运行时)。

 

方案1:让A、B在运行时,用同一个版本的Newtonsoft.Json.dll。

可以在.CONFIG RUNTIME 中加配置 

oldVersion="0.0.0.0-12.0.0.0" newVersion="6.0.0.0" ;

oldVersion 后面的"12.0.0.0" 要大于等于项目中最高版本。

程序根目录 JSON DLL 版本如果是 6.0 的话,修改 newVersion="6.0.0.0" 即可。 (根目的JSON DLL 版本如果是 10.0 ,修改 newVersion="10.0.0.0" 。 根据实际情况修改)
配置项目是大小写敏感的。
配置的作用是让各DLL在运行过程中使用 newVersion="X.0.0.0" (程序根目录) 版本的JSON.DLL ,而不报“未能加载程序集 newtonsoft.json,Version=Y.0.0.0” 的错误。

 

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  
  
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

</configuration>

 

 方案2:这个告诉程序6.0版本的JSON dll在JSON6文件夹里

多个版本可配置多个路径。

<dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
                <codeBase version="6.0.0.0" href="Json6\Newtonsoft.Json.dll" />
            </dependentAssembly>

这个配置项,诉程序6.0版本的JSON dll在JSON6文件夹里。

--


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap