如何在不满足依赖关系的情况下将nuget配置为不建议更新?

时间:2018-01-31 16:48:26

标签: asp.net-core visual-studio-2017 nuget .net-core .net-standard

我在解决方案中有许多基于.netcoreapp11的项目。

在Visual Studio Ver 15.5.6中,使用Nuget Package Manager Ver 4.5.0,

我有一个页面,其中包含显示.NETStandard, Version=v2.0上的依赖关系的更新。

尝试更新任何结果

  

Microsoft.AspNetCore.Server.Kestrel... 2.0.1netcoreapp1.1

不兼容

我目前无法将我们的解决方案移至.Net Core 2。

如何配置我的解决方案或nuget以不建议我无法应用的更新?

1 个答案:

答案 0 :(得分:1)

  

如何配置我的解决方案或nuget以不建议我无法应用的更新?

我担心您的解决方案没有这样的直接配置,或者没有自动建议所有包的更新。

这是因为nuget 仅检测,如果所有nuget源中的版本都基于PackageReference中的版本,而不是检测到要升级的版本是否与目标框架。只有当我们将nuget包安装到项目中时,nuget才会检测此包是否与Target框架兼容。这是nuget的默认设计。因此,在安装软件包之前,我们无法指导解决方案的配置或nuget不建议更新。

要解决此问题,我们可以通过指定版本范围 Version="[1.*, 2.0.0)"手动限制每个软件包的nuget软件包升级版本:

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="[1.*, 2.0.0)" />
  </ItemGroup>

在这种情况下,当nuget不建议将该软件包更新到2.0版时:

enter image description here

注意:您应该使用*是浮动到更高版本的正确方法。

希望这有帮助。