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
不适用