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

时间:2014-05-29 16:54:37

标签: asp.net-web-api json.net nuget

我有一个网站和dll项目。

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

在网站packages.config中我使用package:
< package id =" Microsoft.AspNet.WebApi"版本=" 5.1.2" targetFramework =" net451" /取代。该软件包具有依赖性" Newtonsoft.Json,版本为> = 4.5.11 " 我还添加了一行:
< package id =" Newtonsoft.Json"版本=" 6.0.3" targetFramework =" net451" />

当我启动" Update-Package -ReInstall" nuget检查Microsoft.AspNet.WebApi是否依赖于Newtonsoft.Json,然后用线路覆盖网站packages.config < package id =" Newtonsoft.Json"版本="的 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 :(得分:0)

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

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

启动nuget命令

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

相关问题