我在解决方案中有许多基于.netcoreapp11
的项目。
在Visual Studio Ver 15.5.6中,使用Nuget Package Manager Ver 4.5.0,
我有一个页面,其中包含显示.NETStandard, Version=v2.0
上的依赖关系的更新。
尝试更新任何结果
包
不兼容Microsoft.AspNetCore.Server.Kestrel... 2.0.1
与netcoreapp1.1
我目前无法将我们的解决方案移至.Net Core 2。
如何配置我的解决方案或nuget以不建议我无法应用的更新?
答案 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版时:
注意:您应该使用*是浮动到更高版本的正确方法。
希望这有帮助。