C# .NET newtonsoft.json 多版本冲突解决

 

A.DLL 引用了6.0 的 newtonsoft.json  (V2 运行时),B.DLL 引用了10.0 的 newtonsoft.json (V4 运行时)。 可以在.CONFIG RUNTIME 中加指向 

oldVersion="0.0.0.0-12.0.0.0" newVersion="6.0.0.0" ;根目录放  的JSON DLL 版本,一定要和 newVersion="6.0.0.0"  版本一致。

 

配置项目是大小写敏感的。

实测,主程序是.NET FRAMEWORK 4.0 写的;
主程序引用的newtonsoft.json 是6.0 V2 运行时的,B.DLL 引用的JSON 10.0是 V4 运行时,newVersion指向10.0 JSON ,根目录放置的是 10.0  JSON ,程序能正常运行。
反过来,主程序引用10.0JSON  (V4),B.DLL 引用 6.0 JSON (V2),newVersion指向10.0 JSON ,根目录放置的是 10.0  JSON ,程序能正常运行。


多运行时混合要加 useLegacyV2RuntimeActivationPolicy="true" 。

--

 

 

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>

 

 

--

转载于:https://www.cnblogs.com/runliuv/p/10769373.html

你可能感兴趣的:(C# .NET newtonsoft.json 多版本冲突解决)