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

本文关键字:dll 版本 错误 studio 2013 引用 Visual | 更新日期: 2023-09-27 18:08:06

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

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

当我删除引用,并添加新版本,Visual Studio 2013添加引用,如果它是旧版本,即使dll是正确的。这是添加到我的。csproj的内容:

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

我可以编辑。csproj文件到(第一个是我从空项目引用dll时得到的)

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

或不需要特定版本:

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

我的项目编译,但当我运行它时,我得到一个错误,它无法找到引用的4.5版本的dll。我已经检查了所有的依赖项,找不到任何旧版本的引用,抛出异常的代码是我的代码,在这个项目中。

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

我希望有人有小技巧来帮助我调试这个问题。

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

我就是找不到它。

我建议使用dotPeek工具并打开编译后的项目,查看引用的Newtonsoft.Json的位置。
据我所知,dotPeek将尝试以类似clr的方式查找引用的dll。