TargetFramework-Änderung von „netcoreapp“ in „net“

Der Wert der MSBuild-Eigenschaft TargetFramework wurde von netcoreapp3.1 in net5.0 geändert. Dadurch wird möglicherweise Code unterbrochen, der von der Verarbeitung des Werts von TargetFramework abhängig ist.

Eingeführt in Version

5.0

Änderungsbeschreibung

In .NET Core 1.0 bis 3.1 beginnt der Wert für die MSBuild-Eigenschaft TargetFramework mit netcoreapp (z. B. netcoreapp3.1 für Apps, die auf .NET Core 3.1 abzielen). Ab NET 5 wird dieser Wert vereinfacht und beginnt nur mit net (z. B. net5.0 für .NET 5.0).

Weitere Informationen finden Sie unter Die Zukunft von .NET Standard und Zielframeworknamen in .NET 5.

Grund für die Änderung

  • Dadurch wird der TargetFramework-Wert vereinfacht.
  • Projekte können eine TargetPlatform in die TargetFramework-Eigenschaft einschließen.

Wenn Sie über Logik verfügen, die den Wert von TargetFramework analysiert, müssen Sie sie aktualisieren. Die folgende MSBuild-Bedingung basiert beispielsweise auf dem Wert von TargetFramework.

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

Für diese Anforderung können Sie den Code so aktualisieren, dass er stattdessen den Zielframeworkbezeichner vergleicht.

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

Betroffene APIs