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 になります。

詳細については、「The future of .NET Standard」 (.NET Standard の未来) と「Target framework names in .NET 5」 (.NET 5 のターゲット フレームワーク名) を参照してください。

変更理由

  • TargetFramework 値を簡略化します。
  • TargetFramework プロパティに TargetPlatform を含めることをプロジェクトで可能にします。

TargetFramework の値を解析するロジックがある場合、それを更新する必要があります。 たとえば、次の MSBuild 条件は TargetFramework の値に依存します。

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

この要件の場合、代わりにターゲット フレームワークの識別子を比較するようにコードを更新できます。

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

影響を受ける API

該当なし