Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2017 如何让VS 2017为我尝试安装的软件包安装依赖项?_Visual Studio 2017_Dependencies_Nuget_Installation - Fatal编程技术网

Visual studio 2017 如何让VS 2017为我尝试安装的软件包安装依赖项?

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

我遵循的是Lynda教程,该教程展示了如何将版本控制添加到我的API中。它告诉我安装NuGet软件包Microsoft.AspNetCore.Mvc.Versioning。我试过了,但它给了我一个错误,因为它需要Microsoft.AspNetCore.Mvc.Core。因此,我尝试安装该软件包,再次出现错误,因为它需要另一个软件包

因此,我开始在谷歌上搜索一种方法,通过NuGet安装实现VS2017拉入依赖项。我发现没有一个答案是有用的。我尝试过以packageReference和packages.config管理。“首次安装软件包时允许选择格式”未选中。等等

因此,我决定通过手动添加所有依赖项。我必须安装29个软件包。这花了我半个多小时,还不包括追着那只猫上下楼梯的时间,它在我的肺腑里尖叫

是否有我忘记翻转的开关,或者我没有添加的选项,或者Microsoft真的认为我们可能希望在不安装依赖项的情况下安装软件包

如何让VS 2017为我尝试安装的软件包安装依赖项

我已经转载了这一问题。这是nuget的正确行为。这是因为您要安装的包具有间接依赖关系
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的主要和次要版本号匹配。谢谢