Visual studio 2017 如何让VS 2017为我尝试安装的软件包安装依赖项?
我遵循的是Lynda教程,该教程展示了如何将版本控制添加到我的API中。它告诉我安装NuGet软件包Microsoft.AspNetCore.Mvc.Versioning。我试过了,但它给了我一个错误,因为它需要Microsoft.AspNetCore.Mvc.Core。因此,我尝试安装该软件包,再次出现错误,因为它需要另一个软件包 因此,我开始在谷歌上搜索一种方法,通过NuGet安装实现VS2017拉入依赖项。我发现没有一个答案是有用的。我尝试过以packageReference和packages.config管理。“首次安装软件包时允许选择格式”未选中。等等 因此,我决定通过手动添加所有依赖项。我必须安装29个软件包。这花了我半个多小时,还不包括追着那只猫上下楼梯的时间,它在我的肺腑里尖叫 是否有我忘记翻转的开关,或者我没有添加的选项,或者Microsoft真的认为我们可能希望在不安装依赖项的情况下安装软件包 如何让VS 2017为我尝试安装的软件包安装依赖项 我已经转载了这一问题。这是nuget的正确行为。这是因为您要安装的包具有间接依赖关系Visual studio 2017 如何让VS 2017为我尝试安装的软件包安装依赖项?,visual-studio-2017,dependencies,nuget,installation,Visual Studio 2017,Dependencies,Nuget,Installation,我遵循的是Lynda教程,该教程展示了如何将版本控制添加到我的API中。它告诉我安装NuGet软件包Microsoft.AspNetCore.Mvc.Versioning。我试过了,但它给了我一个错误,因为它需要Microsoft.AspNetCore.Mvc.Core。因此,我尝试安装该软件包,再次出现错误,因为它需要另一个软件包 因此,我开始在谷歌上搜索一种方法,通过NuGet安装实现VS2017拉入依赖项。我发现没有一个答案是有用的。我尝试过以packageReference和packag
Microsoft.AspNetCore.Authentication.Abstractions(>=2.2.0)
注:(版本需要=2.2.0)
但是,.net core API项目的默认包也具有相同的间接依赖关系Microsoft.AspNetCore.Authentication.Abstractions(>=2.1.1&&<2.2.0)
,版本限制(>=2.1.1&<2.2.0)
注:版本限制(>=2.1.1&&<2.2.0)
它与包Microsoft.AspNetCore.Mvc.Versioning
的依赖项冲突。这就是nuget不安装包的依赖项的原因
要解决此问题,我们只需将.NET Core API项目的目标框架(右键单击项目->属性->目标框架)从.NET Core 2.1更新为.NET Core 2.2
如果您没有2.2.0版,请从此处下载并安装:
将目标框架更新为2.2后,默认包Microsoft.AspNetCore.App
将更新为Microsoft.AspNetCore.App 2.2.0
,该依赖项更新为Microsoft.AspNetCore.Authentication.Abstractions(>=2.2.0&<2.3.0)
。因此,它与包Microsoft.AspNetCore.Mvc.Versioning 3.1.1
的依赖项兼容
现在,我可以安装软件包Microsoft.AspNetCore.Mvc.Versioning 3.1.1及其依赖项
希望这有帮助。您是如何使用软件包管理控制台中的nuget软件包管理UI或命令行安装nuget软件包的?我右键单击项目->管理nuget软件包,然后搜索软件包并单击安装。奇怪的是,nuget会自动安装软件包所需的依赖项。您的Visual Studio 2017版本是什么?能否用新的空白项目/解决方案重现此问题?我的VS 2017非常新,我上周刚刚安装。带有.NET framework 4.7.03056的版本15.9.4。我刚刚启动了一个全新的ASP.NET核心Web应用程序和选定的API。我做的第一件事就是进入NuGet并尝试安装Microsoft.AspNetCore.Mvc.Versioning。它给了我安装“最新稳定3.1.1”的选项,我试图安装它。请将此错误添加到问题中。这是一个已知的问题。在里面NET Core,默认情况下,警告
NU1605
被视为错误。转到项目属性并将此警告作为错误从警告中删除。或者,在我的情况下,如果我无法将目标框架升级到2.2(并且必须使用2.1),我必须将我的NuGet libraries版本从最新版本降级到与2.1兼容的版本,这是有意义的。幸运的是,对于Microsoft.AspNetCore.Http
和Microsoft.AspNetCore.Mvc.Core
,这是最新的2.1.*版本——也就是说,它们的版本与.NET Core的主要和次要版本号匹配。谢谢