我正在尝试升级我的项目所依赖的第三方dll。该dll是Newtonsoft.json.dll。
项目中的当前版本是4.5,我正在升级到最新的6.0。
当我删除引用并添加新版本时,即使dll是正确的,Visual Studio 2013也会将引用添加为旧版本。这是添加到我的.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工具并打开已编译的项目,然后查看referenced的位置Newtonsoft.Json
。
据我所知,dotPeek将尝试以类似于clr的方式来查找引用的dll。
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句