Asp.net 使用来自NuGet的引用的.NET Visual Studio无法加载文件或程序集

Asp.net 使用来自NuGet的引用的.NET Visual Studio无法加载文件或程序集,asp.net,.net,visual-studio,visual-studio-2012,nuget,Asp.net,.net,Visual Studio,Visual Studio 2012,Nuget,我在使用NuGet时遇到了一个参考(库)依赖问题,这让我很恼火,请查找我的项目及其关系,如下所示: Utils项目依赖于Newtonsoft.Json projecta依赖于.NET运行时2.0的目标Utils项目 Project B依赖于.NET runtime 4.0的目标Utils项目 projectc依赖于.NET运行时4.5的目标Utils项目 我决定Utils项目应该使用Newtonsoft.Json的最低要求版本,即6.0.4,用于.NET2.0,我认为消费者可以自动覆盖它,但

我在使用NuGet时遇到了一个参考(库)依赖问题,这让我很恼火,请查找我的项目及其关系,如下所示:

  • Utils
    项目依赖于
    Newtonsoft.Json
  • projecta
    依赖于.NET运行时2.0的目标
    Utils
    项目
  • Project B
    依赖于.NET runtime 4.0的目标
    Utils
    项目
  • projectc
    依赖于.NET运行时4.5的目标
    Utils
    项目
我决定
Utils
项目应该使用
Newtonsoft.Json
的最低要求版本,即
6.0.4
,用于
.NET2.0
,我认为消费者可以自动覆盖它,但我错了

项目A
项目B
项目C
将为不同的.NET运行时使用不同版本的
Newtonsoft.Json
。现在,每当程序进入
Utils
中的代码以使用
Newtonsoft.Json
的任何引用时,它抛出异常
无法加载文件或程序集“Newtonsoft.Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6eed”或其依赖项之一。


有人知道谷歌或者更好的解决方案中的关键词应该是什么吗?谢谢你的时间和关注。

我花了几个小时终于解决了这个问题

诀窍是在
app.config
/
web.config
中添加以下块,使程序将引用从旧版本库重定向到新版本。(其中值
10.0.0.0
应为较新库的版本号)



感谢您在此处分享您的解决方案,您可以将其标记为答案,这样它可以帮助其他遇到相同问题的社区成员。@Leo我愿意,但so政策需要更多的时间来允许:)
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
            culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>