TargetFramework 从 netcoreapp 更改为 net

MSBuild TargetFramework 属性的值已从 netcoreapp3.1 此更改为 net5.0。 这可能会破坏依赖于解析TargetFramework的值的代码。

已引入的版本

5.0

更改描述

在 .NET Core 1.0 到 3.1 版本中,MSBuild TargetFramework 属性的值以 netcoreapp 开头,例如,面向 .NET Core 3.1 的应用程序则使用 netcoreapp3.1。 从 .NET 5 开始,此值被简化为仅从 net 开始,例如 .NET 5.0 的 net5.0

有关详细信息,请参阅 .NET 5 中.NET Standard 和 Target 框架名称的未来。

更改原因

  • 简化 TargetFramework 值。
  • 使项目能够在TargetPlatform属性中包含TargetFramework

如果您有解析TargetFramework值的逻辑代码,则需要更新它。 例如,以下 MSBuild 条件依赖于值 TargetFramework

<PropertyGroup Condition="$(TargetFramework.StartsWith('netcoreapp'))">

对于此要求,可以更新代码以比较目标框架标识符。

<PropertyGroup Condition="'$([MSBuild]::GetTargetFrameworkIdentifier('$(TargetFramework)'))' == '.NETCoreApp'">

受影响的 API