针对 .NET Standard 1.x 目标发出的警告

现在,当使用 .NET 9+ SDK 生成面向 netstandard1.x 的项目时发出警告。

以前的行为

以前,可以生成面向 .NET Standard 1.0 - .NET Standard 1.6 的项目,而无需任何生成警告。

新行为

从 .NET 9 开始,如果生成面向 .NET Standard 1.0 - .NET Standard 1.6 的项目,则会发出以下警告:

警告 NETSDK1215:不再推荐面向 2.0 之前的 .NET Standard。 有关详细信息,请参阅 https://aka.ms/dotnet/dotnet-standard-guidance

已引入的版本

.NET 9 预览版 6

破坏性变更的类型

此更改可能会影响 源兼容性

更改原因

引入了生成警告,以鼓励客户面向 .NET Standard 2.0 或 .NET 6+。 如果面向 .NET Standard 1.x,则会将自己限制为一个有超过 10 年历史的 .NET Framework 4.5 的子集。 自那以后,就发生了很多创新,你错过了。 此外,.NET Standard 1.x 作为一组精细的 NuGet 包进行分发,这将创建大型包依赖项关系图,并在生成项目时下载大量包。

有关详细信息,请参阅针对 .NET Standard 1.x 的缺点介绍

TargetFramework 属性更新为 netstandard2.0netstandard2.1.

如果必须保留较旧的 .NET Standard 版本,则可以在项目文件(例如 <CheckNotRecommendedTargetFramework> 文件)或 false 文件中设置为跳过目标框架版本检查:

<PropertyGroup>
  ...
  <CheckNotRecommendedTargetFramework>false</CheckNotRecommendedTargetFramework>
</PropertyGroup>

或者,可以使用项目文件中的属性取消警告 <NoWarn>

<PropertyGroup>
  ...
  <!-- Disable "Targeting .NET Standard prior to 2.0 is no longer recommended." warning -->
  <NoWarn>$(NoWarn);NETSDK1215</NoWarn>
</PropertyGroup>

受影响的 API

另请参阅