对于.Net Core 2.1项目,为什么Nuget恢复.Net 4.6.1包?

Abh*_*eet 8 c# .net-core

如果.Net Core没有可用的包,我们如何在Install-Package命令期间强制执行严格的.Net运行时版本检查?

Install-package命令,为什么Visual Studio甚至还原.Net 4.6.1版本,只是为了在后期阶段给出运行时错误!

我确信VS团队已经考虑过了,必须有理由!以及在Install-Package期间验证和严格运行时版本检查的机制.

警告:

警告NU1701软件包'Microsoft.AspNet.Identity.Core 2.2.2'使用'.NETFramework,Version = v4.6.1'而不是项目目标框架'.NETStandard,Version = v2.0'进行了恢复.此软件包可能与您的项目不完全兼容.

编辑:我刚刚使用了一个完整的.net框架包,例如.

意图是询问如何防止它在Nuget包管理器中发生.

警告NU1701包<any full .net framework package>使用'.NETFramework,Version = v4.6.1'而不是项目目标框架'.NETStandard,Version = v2.0'进行了恢复.此软件包可能与您的项目不完全兼容.

use*_*702 7

Microsoft在此GitHub问题对此进行了解释。引用相关部分:

[...]

每当您使用通过compat填充程序的NuGet软件包时,都会收到如下警告:

警告NU1701:使用'.NETFramework,Version = v4.6.1'而不是项目目标框架'.NETCoreApp,Version = v2.0'恢复了软件包'Huitian.PowerCollections 1.0.0'。该软件包可能与您的项目不完全兼容。

我们确保您在每次构建时都会收到此警告(而不是仅在软件包还原期间),以确保您不会意外忽略它。

这里的想法是,我们无法知道.NET Framework二进制文件是否将真正起作用。例如,它可能取决于WinForms。为确保您不会浪费时间对无法解决的问题进行故障排除,我们告诉您您可能会脱离正常工作。当然,您必须忽略的警告很烦人。因此,我们建议您测试您的应用程序/库,如果您确信一切正常,则可以消除该警告:

[...]

因此,如果该程序包有效,则可以取消显示警告。如果不是,则必须使用其他程序包或等待该程序包支持目标框架。