次の方法で共有


.NET SDK では、より小さい RID グラフが使用されます

.NET 8 以降のバージョンを対象とするプロジェクトでは、より小さい "移植可能な" ランタイム識別子 (RID) グラフが使用されるようになりました。

以前の動作

.NET SDK では、複雑な RID グラフ を使用して、プロジェクトのビルドまたは発行時にアセットを決定しました。

新しい動作

.NET 8 以降、.NET SDK は、.NET 8 以降のバージョンを対象とするプロジェクトに対して、移植可能な RID のみで構成される小さなグラフを使用します。 これは、SDK が既定でバージョン固有またはディストリビューション固有の RID を認識しないことを意味します。 プロジェクトをビルドすると、次のようなエラーが表示されることがあります。

エラー NETSDK1083: 指定された RuntimeIdentifier 'win10-x64' が認識されません。 詳細については、https://aka.ms/netsdk1083 を参照してください。

導入されたバージョン

.NET 8 RC 1

破壊的変更の種類

この変更は 動作の変更 であり、 ソースの互換性にも影響する可能性があります。

変更の理由

RID グラフは保守と理解にコストがかかり、.NET 自体がディストリビューションに対して脆弱に対応する必要がある。 .NET チームとコミュニティは、グラフを更新し、そのような更新を以前のリリースにバックポートするのに、かなりの時間を費やしています。 長期的な目標は、RID グラフの更新を停止し、読み取りを停止し、最終的に削除することです。 この破壊的変更は、その目標への一歩です。

バージョン固有またはディストリビューション固有の RID (linux-<arch>linux-musl-<arch>osx-<arch>など) ではなく、win-<arch>ubuntu.16.04-<arch>osx.10.11-<arch>win10-<arch>などの移植可能な RID を使用します。

プロジェクト ファイル (*.csproj、*.vbproj、または *.fsproj) で RuntimeIdentifier MSBuild プロパティを使用して RID を指定する場合は、それに応じて変更します。 たとえば、 <RuntimeIdentifier>win10-x64</RuntimeIdentifier> をプロジェクト ファイル内の <RuntimeIdentifier>win-x64</RuntimeIdentifier> に変更します。

<PropertyGroup>
  ...
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

RID をコマンド ライン引数として指定する場合は、同様の変更を行います。 たとえば、 dotnet publish --framework net8.0 --runtime win10-x64ではなく、コマンド dotnet publish --framework net8.0 --runtime win-x64を使用します。

以前の完全な RID グラフを使用する前の動作に戻す必要がある場合は、 UseRidGraph MSBuild プロパティをプロジェクト ファイルに true するように設定できます。 ただし、古い RID グラフは、他のディストリビューションやアーキテクチャを処理するために今後更新されることはありません。

<PropertyGroup>
  <UseRidGraph>true</UseRidGraph>
</PropertyGroup>

こちらも参照ください