我正在尝试升级我的项目所依赖的第三方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>..libNewtonsoft.Json.dll</HintPath>
</Reference>
我可以编辑。csproj文件到(第一个是我从空项目引用dll时得到的)
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..libNewtonsoft.Json.dll</HintPath>
</Reference>
或不需要特定版本:
<Reference Include="Newtonsoft.Json">
<HintPath>..libNewtonsoft.Json.dll</HintPath>
</Reference>
我的项目编译,但当我运行它时,我得到一个错误,它无法找到引用的4.5版本的dll。我已经检查了所有的依赖项,找不到任何旧版本的引用,抛出异常的代码是我的代码,在这个项目中。
我不确定为什么Visual Studio不能解析正确的版本。我没有使用NuGet。
我希望有人有小技巧来帮助我调试这个问题。
我建议使用dotPeek工具并打开编译后的项目,查看引用的Newtonsoft.Json
的位置。
据我所知,dotPeek将尝试以类似clr的方式查找引用的dll。