次の方法で共有


ランタイムがビルドされたプラットフォームが RuntimeIdentifier から返される

実行時に計算された値ではなく、ランタイムがビルドされたプラットフォームが RuntimeInformation.RuntimeIdentifier から返されます。

以前の動作

この値は、OS ファイルまたは API を介して計算されたランタイム識別子 (RID) でした。 通常、これはバージョン固有かつディストリビューション固有の RID であることを意味していました。 たとえば、Windows 11 上でアプリケーションを実行している場合、その値は win10-x64 でした。また、Ubuntu 20.04 の場合は ubuntu.20.04-x64 になることがありました。

新しい動作

.NET 8 以降では、この値はランタイムがビルドされた RID になります。 つまり、ランタイムの移植可能なビルド (Microsoft が提供するすべてのビルド) の場合、この値はバージョン固有でもディストリビューション固有でもありません。 たとえば、Windows 11 の値は win-x64 であり、Ubuntu 20.04 の場合は linux-x64 です。 移植不可能なビルド (source-build) の場合、ビルドにより、バージョンとディストリビューションを持つことができるビルド RID が設定され、その値が、返される RID になります。

導入されたバージョン

.NET 8 RC 1

破壊的変更の種類

この変更は、動作変更です。

変更理由

この変更は、RID 固有の資産の解決に対する .NET 8 の変更と、ディストリビューション対応のランタイムからの移行に伴うものです。 RuntimeInformation.RuntimeIdentifier は、そこで稼働しているとホストまたはランタイムが認識しているプラットフォームを表す不透明な値です。 .NET 8 では、実行時に計算された RID ではなく、ホストまたはランタイムがビルドされたプラットフォームに対応します。

RuntimeInformation.RuntimeIdentifier は不透明な値であり、コンポーネント パーツに解析されるものではありません。 アプリケーションが実行されている実際のマシンの OS バージョンには Environment.OSVersion を使います。 説明には RuntimeInformation.OSDescription を使います。 Linux 上の特定の ID (ディストリビューション) と対応するバージョンについては、os-release ファイルを参照してください。

影響を受ける API

関連項目