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 Standard 的未来.NET 5 中的目标框架名称

更改原因

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

如果你有用于分析 TargetFramework 的值的逻辑,则需要对其进行更新。 例如,以下 MSBuild 条件依赖于 TargetFramework 的值。

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

为满足此要求,可更新代码,改为比较目标框架标识符。

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

受影响的 API

不适用