首页 文章

由于WebAPI依赖性,Nuget安装旧版本的Newtonsoft.Json软件包

提问于
浏览
0

我有一个网站和DLL项目 .

在dll packages.config中我使用了包:
<package id = "Newtonsoft.Json" version =“ 6.0.3 " targetFramework=" net451”/>

在网站packages.config我使用包:
<package id = "Microsoft.AspNet.WebApi" version = "5.1.2" targetFramework = "net451" /> . 这个包有依赖“Newtonsoft.Json with version> = 4.5.11 ”我还添加了一行:
<package id = "Newtonsoft.Json" version = "6.0.3" targetFramework = "net451" />

当我启动"Update-Package -ReInstall" nuget检查Microsoft.AspNet.WebApi依赖于Newtonsoft.Json,然后nuget overwrites 网站packages.config与行
<package id = "Newtonsoft.Json" version =“ 4.5.11 " targetFramework=" net451”/>并将Newtonsoft.Json 4.5.11 复制到网站的"bin"文件夹中 .

bin文件夹也有我的dll,这取决于newtonjson的新版本,它不起作用..

我试过命令"Update-Package -Reinstall -IgnoreDependencies" . 它有所帮助:现在我在网站/ bin中有6.0.3 . 但是有两个问题:项目上的所有开发人员是否只使用"Update-Package -Reinstall -IgnoreDependencies"?他们无法从GUI启动nuget的更新?没有启动的项目,一些dll引用Newtonsoft.Json 4.5.0 (由于使用依赖注入,我没有确切的错误消息) .

有人知道吗:
*如何正常告诉nuget下载newtonsoft 6.0.3在gui中正常工作?在packages.config中有没有这个选项? *如果我使用newtonsoft json 6.0.3,我应该使用bindingRedirect修复webapi程序集的版本吗?

非常感谢!!!

1 回答

  • 0

    好的,我找到了问题的原因

    在为dll项目编辑packages.config和为dll项目编辑Update-Package -Reinstall命令之后,nuget为dll项目下载了正确版本的Newtonsoft.Json(6.0.3),但没有刷新项目引用中的路径 . 因此解决方案 - do not edit packages.config manually . 仅从包管理器控制台或gui启动nuget命令 .

    是的, bindingRedirect 帮助解决了第二个问题

相关问题