Visual Studio Nuget软件包管理器Net Core允许高于目标sdk的软件包

时间:2018-12-27 16:54:03

标签: c# .net-core nuget-package .net-core-2.1

所以我有一个针对Net Core 2.1(特别是2.1.500)的项目

我也有一个global.json,里面也有2.1.500。

最近,Microsoft更新到了Net Core 2.2,但是我还不想迁移到那。

当我打开Nuget软件包管理器时,它告诉我某些更新可用

enter image description here

问题是所有这些软件包都适用于2.2 sdk,它完全忽略了我没有针对的事实。

这似乎是一个错误,因为在.Net Framework中,它不会建议目标sdk高于您所使用的sdk的软件包。

这是正确的吗?我应该向Net Core团队报告问题吗?

1 个答案:

答案 0 :(得分:1)

该功能正确。这些库的目标是.NETStandard2.0而不是.NET Core App 2.2,这意味着与.NET Core兼容的任何.NET Standard 2.0应用都可以使用这些库,而不管它们使用的是.NET SDK

例如,在Visual Studio的EntityFramework.SqlServerCompact窗口中查看Manage Nuget Packages。它以.NETFramework,Version=v4.0列出其依赖项,这意味着它将无法在.NET Core.NET Framework的任何早期版本中使用。

此外,如果您尝试将EntityFramework.SqlServerCompact软件包安装在.NET Core中,则会在“错误列表”窗口中看到错误:

  

警告NU1701软件包'EntityFramework.SqlServerCompact 6.2.0'是   使用'.NETFramework,Version = v4.6.1'而非项目还原   目标框架'.NETCoreApp,Version = v2.1'。这个包裹可能不是   与您的项目完全兼容。