.NET Core の RID カタログ.NET Core RID Catalog

RID はランタイム識別子の略です。RID is short for Runtime IDentifier. RID の値は、アプリケーションが実行されている対象プラットフォームの識別に使用されます。RID values are used to identify target platforms where the application runs. これは NuGet パッケージのプラットフォーム固有のアセットを表すために、.NET パッケージによって使用されます。They're used by .NET packages to represent platform-specific assets in NuGet packages. RID は、たとえば linux-x64ubuntu.14.04-x64win7-x64、または osx.10.12-x64 などの値です。The following values are examples of RIDs: linux-x64, ubuntu.14.04-x64, win7-x64, or osx.10.12-x64. ネイティブ依存関係のあるパッケージの場合、パッケージを復元できるプラットフォームが RID によって指定されます。For the packages with native dependencies, the RID designates on which platforms the package can be restored.

プロジェクト ファイルの <RuntimeIdentifier> 要素では、1 つの RID を設定できます。A single RID can be set in the <RuntimeIdentifier> element of your project file. 複数の RID は、プロジェクト ファイルの <RuntimeIdentifiers> 要素でセミコロン区切りのリストとして定義できます。Multiple RIDs can be defined as a semicolon-delimited list in the project file's <RuntimeIdentifiers> element. 以下の .NET Core CLI コマンド--runtime オプションで使用することもできます。They're also used via the --runtime option with the following .NET Core CLI commands:

具体的なオペレーティング システムを表す RID は通常、[os].[version]-[architecture]-[additional qualifiers] のようなパターンになります。それぞれ、次のような意味があります。RIDs that represent concrete operating systems usually follow this pattern: [os].[version]-[architecture]-[additional qualifiers] where:

  • [os] はオペレーティング システムまたはプラットフォーム システムのモニカーです。[os] is the operating/platform system moniker. たとえば、ubuntu のようにします。For example, ubuntu.

  • [version] は、オペレーティング システムのバージョンをドット区切りの形式 (.) で表したバージョン番号です。[version] is the operating system version in the form of a dot-separated (.) version number. たとえば、15.10 のようにします。For example, 15.10.

    • バージョンはマーケティング バージョンにしないでください。プラットフォームの API アクセス領域が異なる、オペレーティング システムの複数の別々のバージョンを表すことがあるためです。The version shouldn't be marketing versions, as they often represent multiple discrete versions of the operating system with varying platform API surface area.
  • [architecture] はプロセッサ アーキテクチャです。[architecture] is the processor architecture. たとえば x86x64arm または arm64 などです。For example: x86, x64, arm, or arm64.

  • [additional qualifiers] はさまざまなプラットフォームをさらに区別します。[additional qualifiers] further differentiate different platforms. 例 : aot または corertFor example: aot or corert.

RID グラフRID graph

RID グラフまたはランタイム フォールバック グラフとは、相互に互換性のある RID の一覧です。The RID graph or runtime fallback graph is a list of RIDs that are compatible with each other. RID は Microsoft.NETCore.Platforms パッケージで定義されています。The RIDs are defined in the Microsoft.NETCore.Platforms package. サポートされている RID および RID グラフの一覧は、CoreFX リポジトリにある runtime.json ファイルで確認できます。You can see the list of supported RIDs and the RID graph in the runtime.json file, which is located at the CoreFX repo. このファイルでは、基本となる RID を除くすべての RID に "#import" ステートメントが記述されていることを確認できます。In this file, you can see that all RIDs, except for the base one, contain an "#import" statement. このステートメントは互換性のある RID を示しています。These statements indicate compatible RIDs.

NuGet はパッケージを復元する際、指定されたランタイムと正確に一致するものを見つけようとします。When NuGet restores packages, it tries to find an exact match for the specified runtime. 正確に一致するものが見つからない場合、NuGet は、RID グラフに基づいて最も互換性のあるシステムが見つかるまでグラフを遡ります。If an exact match is not found, NuGet walks back the graph until it finds the closest compatible system according to the RID graph.

次に示す例は、osx.10.12-x64 の RID として実際に記述されているものです。The following example is the actual entry for the osx.10.12-x64 RID:

"osx.10.12-x64": {
    "#import": [ "osx.10.12", "osx.10.11-x64" ]

上の RID は osx.10.12-x64osx.10.11-x64 をインポートすることを指定します。The above RID specifies that osx.10.12-x64 imports osx.10.11-x64. そのため、NuGet はパッケージを復元する際、osx.10.12-x64 と正確に一致するものをパッケージから見つけようとします。So, when NuGet restores packages, it tries to find an exact match for osx.10.12-x64 in the package. 特定のランタイムが見つからなかった場合、NuGet は、たとえば osx.10.11-x64 ランタイムを指定しているパッケージを復元できます。If NuGet cannot find the specific runtime, it can restore packages that specify osx.10.11-x64 runtimes, for example.

次の例は、runtime.json ファイルにも定義されている少し大きめの RID グラフです。The following example shows a slightly bigger RID graph also defined in the runtime.json file:

    win7-x64    win7-x86
       |   \   /    |
       |   win7     |
       |     |      |
    win-x64  |  win-x86
          \  |  /

すべての RID は最終的にルート any RID にマッピングされます。All RIDs eventually map back to the root any RID.

RID を使用する際に留意しておく必要のある注意事項があります。There are some considerations about RIDs that you have to keep in mind when working with them:

  • RID は不透明な文字列であり、ブラック ボックスとして処理する必要があります。RIDs are opaque strings and should be treated as black boxes.
  • RID をプログラムによって作成しないでください。Don't build RIDs programmatically.
  • プラットフォームであらかじめ定義されている RID を使用します。Use RIDs that are already defined for the platform.
  • RID は特定の値である必要があるため、実際の値から推測した値にしないでください。The RIDs need to be specific, so don't assume anything from the actual RID value.

RID の使用Using RIDs

RID を使用するには、どのような RID があるのか知る必要があります。To be able to use RIDs, you have to know which RIDs exist. プラットフォームには新しい RID が定期的に追加されます。New values are added regularly to the platform. 最新の完全バージョンについては、CoreFX リポジトリの runtime.json ファイルをご覧ください。For the latest and complete version, see the runtime.json file on CoreFX repo.

.NET Core 2.0 SDK には、ポータブル RID の概念が導入されています。.NET Core 2.0 SDK introduces the concept of portable RIDs. これは、RID グラフに新しく追加された値であり、特定のバージョンや OS のディストリビューションに関連付けられていません。They are new values added to the RID graph that aren't tied to a specific version or OS distribution. 特に、複数の Linux ディストリビューションを扱うときに便利です。They're particularly useful when dealing with multiple Linux distros.

次の一覧に、各 OS に使用される最も一般的な RID を示します。The following list shows the most common RIDs used for each OS. armcorert の値は対象外です。It doesn't cover arm or corert values.

Windows RIDWindows RIDs

  • ポータブルPortable
    • win-x86
    • win-x64
  • Windows 7 / Windows Server 2008 R2Windows 7 / Windows Server 2008 R2
    • win7-x64
    • win7-x86
  • Windows 8 / Windows Server 2012Windows 8 / Windows Server 2012
    • win8-x64
    • win8-x86
    • win8-arm
  • Windows 8.1 / Windows Server 2012 R2Windows 8.1 / Windows Server 2012 R2
    • win81-x64
    • win81-x86
    • win81-arm
  • Windows 10 / Windows Server 2016Windows 10 / Windows Server 2016
    • win10-x64
    • win10-x86
    • win10-arm
    • win10-arm64

詳細については、「Windows における .NET Core の前提条件」を参照してください。See Prerequisites for .NET Core on Windows for more information.

Linux RIDLinux RIDs

  • ポータブルPortable
    • linux-x64
  • CentOSCentOS
    • centos-x64
    • centos.7-x64
  • DebianDebian
    • debian-x64
    • debian.8-x64
    • debian.9-x64 (.NET Core 1.1 以降)debian.9-x64 (.NET Core 1.1 or later versions)
  • FedoraFedora
    • fedora-x64
    • fedora.27-x64
    • fedora.28-x64 (.NET Core 1.1 以降)fedora.28-x64 (.NET Core 1.1 or later versions)
  • Gentoo (.NET Core 2.0 以降)Gentoo (.NET Core 2.0 or later versions)
    • gentoo-x64
  • openSUSEopenSUSE
    • opensuse-x64
    • opensuse.42.3-x64
  • Oracle LinuxOracle Linux
    • ol-x64
    • ol.7-x64
    • ol.7.0-x64
    • ol.7.1-x64
    • ol.7.2-x64
    • ol.7.3-x64
    • ol.7.4-x64
  • Red Hat Enterprise LinuxRed Hat Enterprise Linux
    • rhel-x64
    • rhel.6-x64 (.NET Core 2.0 以降)rhel.6-x64 (.NET Core 2.0 or later versions)
    • rhel.7-x64
    • rhel.7.1-x64
    • rhel.7.2-x64
    • rhel.7.3-x64 (.NET Core 2.0 以降)rhel.7.3-x64 (.NET Core 2.0 or later versions)
    • rhel.7.4-x64 (.NET Core 2.0 以降)rhel.7.4-x64 (.NET Core 2.0 or later versions)
  • Tizen (.NET Core 2.0 以降)Tizen (.NET Core 2.0 or later versions)
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0
  • UbuntuUbuntu
    • ubuntu-x64
    • ubuntu.14.04-x64
    • ubuntu.16.04-x64
    • ubuntu.17.10-x64
    • ubuntu.18.04-x64
  • Ubuntu の派生ディストリビューションUbuntu derivatives
    • linuxmint.17-x64
    • linuxmint.17.1-x64
    • linuxmint.17.2-x64
    • linuxmint.17.3-x64
    • linuxmint.18-x64 (.NET Core 2.0 以降)linuxmint.18-x64 (.NET Core 2.0 or later versions)
    • linuxmint.18.1-x64 (.NET Core 2.0 以降)linuxmint.18.1-x64 (.NET Core 2.0 or later versions)
    • linuxmint.18.2-x64 (.NET Core 2.0 以降)linuxmint.18.2-x64 (.NET Core 2.0 or later versions)
    • linuxmint.18.3-x64 (.NET Core 2.0 以降)linuxmint.18.3-x64 (.NET Core 2.0 or later versions)
  • SUSE Enterprise Linux (SLES) (.NET Core 2.0 以降のバージョン)SUSE Enterprise Linux (SLES) (.NET Core 2.0 or later versions)
    • sles-x64
    • sles.12-x64
    • sles.12.1-x64
    • sles.12.2-x64
    • sles.12.3-x64
  • Alpine Linux (.NET Core 2.1 以降のバージョン)Alpine Linux (.NET Core 2.1 or later versions)
    • alpine-x64
    • alpine.3.7-x64

詳細については、「Linux における .NET Core の前提条件」を参照してください。See Prerequisites for .NET Core on Linux for more information.


macOS RID では、以前の "OSX" ブランドが使用されています。macOS RIDs use the older "OSX" branding.

  • osx-x64 (.NET Core 2.0 以降のバージョン、最小バージョンは osx.10.12-x64)osx-x64 (.NET Core 2.0 or later versions, minimum version is osx.10.12-x64)
  • osx.10.10-x64
  • osx.10.11-x64
  • osx.10.12-x64 (.NET Core 1.1 以降)osx.10.12-x64 (.NET Core 1.1 or later versions)
  • osx.10.13-x64

詳細については、「macOS における .NET Core の前提条件」を参照してください。See Prerequisites for .NET Core on macOS for more information.

Android RID (.NET Core 2.0 以降)Android RIDs (.NET Core 2.0 or later versions)

  • android
  • android.21

関連項目See also