NETSDK1206: バージョン固有またはディストリビューション固有のランタイム識別子が見つかりました。

ETSDK1206 は、プロジェクトにバージョン固有またはディストリビューション固有のランタイム識別子のアセットがあることを示しています。 .NET 8 以降では、ランタイムは既定でバージョン固有またはディストリビューション固有の RID を考慮しなくなり、ポータブル RID の既知のセットを使用して RID 固有のアセットを検出します。 警告には、影響を受ける RID とパッケージが列挙されます。

まず、影響を受けるパッケージがポータブル RID に移行していないか、新しいバージョンをチェックします。 多くのパッケージが既に最新バージョンでポータブル RID に移行しています。 そのようなバージョンが存在しない場合、パッケージの作成者に連絡して、ポータブル RID のみを使用するようにパッケージを変更するよう要求することをお勧めします。

アプリケーションが実際には指定された RID を必要としないことを把握している場合 (RID で指定されたプラットフォームで実行することを意図していない場合など) は、NoWarn MSBuild プロパティを使用して警告を抑制できます。 次に例を示します。

<PropertyGroup>
  <NoWarn>$(NoWarn);NETSDK1206</NoWarn>
</PropertyGroup>

アプリケーションに指定された RID が必要で、影響を受けるパッケージにポータブル RID を使用するバージョンがない場合、ランタイムは、バージョン固有およびディストリビューション固有の RID を持つ以前の RID グラフを介して資産解決を実行するように構成できます。 以前の RID グラフは更新されなくなり、後方互換性のあるオプションとしてのみ存在することに注意してください。

<ItemGroup>
  <RuntimeHostConfigurationOption Include="System.Runtime.Loader.UseRidGraph" Value="true" />
</ItemGroup>