我正在尝试升级我的项目依赖的第三方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。
我希望有人能够帮助我调试这个问题。这真让我感到困惑,我确信这是一件很简单的事,但我找不到它。
答案 0 :(得分:2)
我建议您使用dotPeek工具并打开已编译的项目并查看引用的Newtonsoft.Json
的位置。
据我所知,dotPeek将尝试以与clr类似的方式查找引用的dll。
希望这有帮助。