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

时间:2017-07-25 15:05:13

标签: .net json.net nuget

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

当程序运行时,它会抛出异常

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解决了当前问题,但我想找到问题的根源。

我运行了update-package Newtonsoft.Json -reinstall并查看了所有挂起的更改,看看是否有任何项目引用了v10但我找不到任何内容。

1 个答案:

答案 0 :(得分:1)

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

有时它会保存对旧版本软件包的引用