为什么.Net试图加载错误版本的Newtonsoft.Json?

为什么.Net试图加载错误版本的Newtonsoft.Json?,.net,json.net,nuget,.net,Json.net,Nuget,在我的项目中,我安装了以下软件包: JWT v2.3.2() Newtonsoft.Json v9.0.1() 当程序运行时,它抛出一个异常 System.IO.FileLoadException Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. Th

在我的项目中,我安装了以下软件包:

  • JWT v2.3.2()
  • Newtonsoft.Json v9.0.1()
当程序运行时,它抛出一个异常

System.IO.FileLoadException

Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at JWT.Serializers.JsonNetSerializer.Serialize(Object obj)
   at JWT.JwtEncoder.Encode(IDictionary`2 extraHeaders, Object payload, Byte[] key)
   ...
为什么.Net试图加载此版本的Newtonsoft.Json。JWT需要v6.0.4或更高版本,我已经满足了这一要求。这两个软件包都是在Newtonsoft.Json甚至还没有v10版本之前安装和运行的。运行时如何知道v10的存在

我通过将绑定重定向添加回v9解决了眼前的问题,但我想找到问题的根源


我运行了
更新包Newtonsoft.Json-重新安装
,查看了所有挂起的更改,以查看是否有任何项目引用了v10,但我找不到任何内容。

在visual studio中右键单击->卸载项目->右键单击->编辑。*csproj来检查。*csproj文件,或者使用任何文本编辑器打开它


有时,它对包的旧版本的保存引用

实现目标的唯一方法是启用MSBuild diagnostics日志记录,然后检查它如何尝试解析程序集。