我正在尝试升级我的项目所依赖的第三方 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>
我的项目可以编译,但是当我运行它时,出现错误,指出找不到引用的 dll 的 4.5 版本。我已经检查了所有依赖项,找不到任何对旧版本的引用,引发异常的代码是我在这个项目中的代码。
我不确定为什么 Visual Studio 无法解析正确的版本。我没有使用 NuGet。
我希望有人能提供一些小技巧来帮助我调试这个问题。这真的让我很困惑,我确信这是这么简单的事情,但我就是找不到它。
最佳答案
我建议采取dotPeek工具并打开编译后的项目,可以看到引用的 Newtonsoft.Json
的位置。
据我所知,dotPeek 会尝试以与 clr 类似的方式查找引用的 dll。
希望这有帮助。
关于c# - Visual Studio 2013引用错误的dll版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151324/