对于.Net Core 2.1项目,为什么Nuget还原.Net 4.6.1软件包?

时间:2018-11-07 12:44:53

标签: c# .net-core

如果.Net Core软件包不可用Install-Package命令期间,我们如何执行严格的.Net运行时版本检查?

  

Install-package命令,为什么Visual Studio甚至还原.Net   4.6.1版本,只是为了在以后提供运行时错误!

我确定VS团队已经考虑过了,这一定是有原因的! 以及一种在安装包过程中验证和严格运行时版本检查的机制。

警告:

  

警告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'。这个包裹可能不是   与您的项目完全兼容。

1 个答案:

答案 0 :(得分:5)

Microsoft在this GitHub issue中对此进行了解释。引用相关部分:

  

[...]

     

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

     
    

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

  
     

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

     

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

     

[...]

因此,如果该软件包有效,则可以禁止显示警告。如果没有,则必须使用其他软件包或等待该软件包支持您的目标框架。