我有一个网站和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程序集的版本吗?
非常感谢!!!
答案 0 :(得分:0)
好的,我找到了问题的原因
在为dll项目编辑packages.config和为dll项目编辑Update-Package -Reinstall命令后,nuget为dll项目下载了正确版本的Newtonsoft.Json(6.0.3),但没有刷新项目引用中的路径。因此解决方案 - 不要手动编辑packages.config 。仅从包管理器控制台或gui。
启动nuget命令是的, bindingRedirect 帮助解决了第二个问题