我正在关注Lynda教程,该教程显示了如何向API添加版本控制。它告诉我安装NuGet包Microsoft.AspNetCore.Mvc.Versioning。我尝试了一下,但由于需要Microsoft.AspNetCore.Mvc.Core,这给了我一个错误。因此,我尝试安装该软件包,并且再次出现另一个错误,因为它需要另一个软件包。
因此,我开始搜寻一种方法,以使VS 2017通过NuGet安装引入依赖关系。我发现的答案都没有帮助。我尝试过管理为packageReference和packages.config。未选中“允许在首次安装软件包时选择格式”。依此类推。
因此,我决定只接通电源并手动添加所有依赖项。我必须安装29个软件包。我花了半个多小时,这还不包括花时间追逐猫在我的肺顶部尖叫的上下楼梯。
是否有一些我忘记翻转的开关,或者没有添加的某些选项,或者微软真的认为我们可能希望该选项安装软件包而不安装其依赖项吗?
答案 0 :(得分:0)
如何让VS 2017为我要安装的软件包安装依赖项?
我已经复制了这个问题。这是nuget的正确行为。那是因为您要安装的软件包具有间接依赖性Microsoft.AspNetCore.Authentication.Abstractions (>= 2.2.0)
。
注意:(版本需要> = 2.2.0 )。
但是,.net核心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 2.1更新目标框架(右键单击项目->属性->目标框架)。 更改为.net Core API项目的 .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
及其相关性了。
希望这会有所帮助。