C# Visual studio 2013引用了错误的dll版本

C# Visual studio 2013引用了错误的dll版本,c#,dll,visual-studio-2013,json.net,C#,Dll,Visual Studio 2013,Json.net,我正在尝试升级我的项目所依赖的第三方dll。dll是Newtonsoft.json.dll 项目中的当前版本是4.5,我正在升级到最新版本6.0 当我删除引用并添加新版本时,Visual Studio 2013会添加引用,就像它是旧版本一样,即使dll是正确的。这是添加到my.csproj中的内容: <Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2

我正在尝试升级我的项目所依赖的第三方dll。dll是Newtonsoft.json.dll

项目中的当前版本是4.5,我正在升级到最新版本6.0

当我删除引用并添加新版本时,Visual Studio 2013会添加引用,就像它是旧版本一样,即使dll是正确的。这是添加到my.csproj中的内容:

<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <HintPath>..\lib\Newtonsoft.Json.dll</HintPath>
</Reference>

..\lib\Newtonsoft.Json.dll
我可以将.csproj文件编辑为(第一个是从空项目引用dll时得到的)


..\lib\Newtonsoft.Json.dll
或者不需要特定版本:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\lib\Newtonsoft.Json.dll</HintPath>
</Reference>

..\lib\Newtonsoft.Json.dll
我的项目可以编译,但是当我运行它时,我得到一个错误,它找不到引用的dll的4.5版本。我已经检查了所有依赖项,在这个项目中找不到任何对旧版本的引用,引发异常的代码是我的代码

我不确定为什么Visual Studio无法解析正确的版本。我没有使用NuGet

我希望有人有一个小技巧,他们的袖子,以帮助我调试这个问题。这真的让我很困惑,我确信这是一件很简单的事情,但我就是找不到它。

我建议使用该工具打开已编译的项目,并查看引用的
Newtonsoft.Json

据我所知,dotPeek将尝试以与clr类似的方式查找引用的dll


希望这有帮助。

你应该使用NuGet。你在GAC中有Newtonsoft.Json.dll吗?
勾选[…]来帮助我调试这个问题
-我建议使用
dotPeek
工具打开编译后的项目,并查看引用的Newtonsoft.Json的位置(好吧,dotPeek将尝试以与clr类似的方式查找引用的dll)。我在GAC中有一个Newtonsoft.Json.dll版本3.5,我使用的是一个旧dll引用。这从来都不是问题。我在GAC中没有任何其他版本。我试试dotPeek!结果是另一个第三方dll引用了错误的版本。这个dll是我升级NewtonSoft的原因,因为它发布了一个新的dll,其中引用了NewtonSoft的最新版本。结果证明他们没有用更新的版本编译它。他们使用NuGet btw。
<Reference Include="Newtonsoft.Json">
  <HintPath>..\lib\Newtonsoft.Json.dll</HintPath>
</Reference>