.NET Core-RID-Katalog.NET Core RID Catalog

RID ist die Kurzform für Runtime-ID (Laufzeitbezeichner).RID is short for Runtime IDentifier. Mithilfe von RID-Werten werden Zielplattformen identifiziert, unter der die Anwendung ausgeführt wird.RID values are used to identify target platforms where the application runs. Sie werden von .NET-Paketen verwendet, um plattformspezifische Ressourcen in NuGet-Paketen darzustellen.They're used by .NET packages to represent platform-specific assets in NuGet packages. Die folgenden Werte sind Beispiele für RIDs: linux-x64, ubuntu.14.04-x64, win7-x64 oder osx.10.12-x64.The following values are examples of RIDs: linux-x64, ubuntu.14.04-x64, win7-x64, or osx.10.12-x64. Für die Pakete mit nativen Abhängigkeiten legt die RID fest, auf welchen Plattformen das Paket wiederhergestellt werden kann.For the packages with native dependencies, the RID designates on which platforms the package can be restored.

RIDs können im <RuntimeIdentifier>-Element der Projektdatei festgelegt werden.RIDs can be set in the <RuntimeIdentifier> element of your project file. Sie können auch über die Option --runtime mit den folgenden .NET Core-CLI-Befehlen verwendet werden:They're also used via the --runtime option with the following .NET Core CLI commands:

RIDs, die konkrete Betriebssysteme darstellen, weisen in der Regel folgendes Muster auf: [os].[version]-[architecture]-[additional qualifiers], wobei:RIDs that represent concrete operating systems usually follow this pattern: [os].[version]-[architecture]-[additional qualifiers] where:

  • [os] ist der Moniker des Betriebs-/Plattformsystems.[os] is the operating/platform system moniker. Beispielsweise ubuntu.For example, ubuntu.

  • [version] ist die Version des Betriebssystems in Form einer durch Punkte getrennten (.) Versionsnummer.[version] is the operating system version in the form of a dot-separated (.) version number. Beispielsweise 15.10.For example, 15.10.

    • Die Version sollte keine Marketingversion sein, da diese häufig mehrere separate Versionen des Betriebssystems mit unterschiedlichen Plattform-API-Oberflächen darstellt.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] ist die Prozessorarchitektur.[architecture] is the processor architecture. Beispielsweise x86, x64, arm oder arm64.For example: x86, x64, arm, or arm64.

  • [additional qualifiers] differenziert die verschiedenen Plattformen noch stärker.[additional qualifiers] further differentiate different platforms. Beispiel: aot oder corert.For example: aot or corert.

RID-DiagrammRID graph

Das RID-Diagramm oder Runtimefallbackdiagramm ist eine Liste von RIDs, die miteinander kompatibel sind.The RID graph or runtime fallback graph is a list of RIDs that are compatible with each other. Die RIDs werden im Paket Microsoft.NETCore.Platforms definiert.The RIDs are defined in the Microsoft.NETCore.Platforms package. Die Liste der unterstützten RIDs und das RID-Diagramm finden Sie in der Datei runtime.json im CoreFX-Repository.You can see the list of supported RIDs and the RID graph in the runtime.json file, which is located at the CoreFX repo. In dieser Datei können Sie sehen, dass alle RIDs außer der Basis-RID eine "#import"-Anweisung enthalten.In this file, you can see that all RIDs, except for the base one, contain an "#import" statement. Diese Anweisungen geben kompatible RIDs an.These statements indicate compatible RIDs.

Bei NuGet-Wiederherstellungspaketen wird versucht, eine genaue Übereinstimmung für die angegebene Runtime zu finden.When NuGet restores packages, it tries to find an exact match for the specified runtime. Wenn keine genaue Übereinstimmung gefunden wird, durchläuft das NuGet erneut das Diagramm, bis es das System mit der größten Kompatibilität gemäß dem RID-Diagramm findet.If an exact match is not found, NuGet walks back the graph until it finds the closest compatible system according to the RID graph.

Im Folgenden wird ein Beispiel für den tatsächlichen Eintrag für die osx.10.12-x64-RID vorgestellt: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" ]
}

Die oben genannte RID gibt an, dass osx.10.12-x64 osx.10.11-x64 importiert.The above RID specifies that osx.10.12-x64 imports osx.10.11-x64. Bei NuGet-Wiederherstellungspaketen wird daher versucht, eine genaue Übereinstimmung für osx.10.12-x64 im Paket zu finden.So, when NuGet restores packages, it tries to find an exact match for osx.10.12-x64 in the package. Wenn das NuGet die angegebene Runtime nicht finden kann, kann es beispielsweise Wiederherstellungspakete mit den Runtimes osx.10.11-x64 finden.If NuGet cannot find the specific runtime, it can restore packages that specify osx.10.11-x64 runtimes, for example.

Das folgende Beispiel zeigt, wie ein etwas größeres RID-Diagramm auch in der Datei runtime.json definiert wird: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
          \  |  /
            win
             |
            any

Alle RIDs bilden schließlich wieder den Stamm any-RID ab.All RIDs eventually map back to the root any RID.

Es gibt einige Aspekte zu RIDs, die Sie bei der Verwendung bedenken müssen:There are some considerations about RIDs that you have to keep in mind when working with them:

  • RIDs sind opake Zeichenfolgen und sollten als Blackboxes behandelt werden.RIDs are opaque strings and should be treated as black boxes.
  • Erstellen Sie RIDs nicht programmgesteuert.Don't build RIDs programmatically.
  • Verwenden Sie RIDs, die bereits für die Plattform definiert sind.Use RIDs that are already defined for the platform.
  • Die RIDs müssen spezifisch sein. Leiten Sie daher keine Annahmen anhand des tatsächlichen RID-Werts ab.The RIDs need to be specific, so don't assume anything from the actual RID value.

Die Verwendung von RIDsUsing RIDs

Um RIDs verwenden zu können, müssen Sie wissen, welche RIDs es gibt.To be able to use RIDs, you have to know which RIDs exist. Zur Plattform werden regelmäßig neue Werte hinzugefügt.New values are added regularly to the platform. Prüfen Sie die Datei runtime.json im CoreFX-Repository auf die neueste und vollständige Version.For the latest and complete version, see the runtime.json file on CoreFX repo.

Mit dem .NET Core 2.0 SDK wird das Konzept von portablen RIDs eingeführt..NET Core 2.0 SDK introduces the concept of portable RIDs. Dabei handelt es sich um neue zum RID-Diagramm hinzugefügte Werte, die nicht an eine bestimmte Version oder Betriebssystemverteilung gebunden sind.They are new values added to the RID graph that aren't tied to a specific version or OS distribution. Sie sind besonders nützlich, beim Umgang mit mehreren Linux-Distributionen.They're particularly useful when dealing with multiple Linux distros.

Die folgende Liste enthält die am häufigsten verwendeten RIDs für jedes Betriebssystem.The following list shows the most common RIDs used for each OS. Die Werte arm oder corert werden nicht behandelt.It doesn't cover arm or corert values.

RIDs für WindowsWindows RIDs

  • PortabelPortable
    • 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

Finden Sie unter Voraussetzungen für die .NET Core unter Windows für Weitere Informationen.See Prerequisites for .NET Core on Windows for more information.

RIDs für LinuxLinux RIDs

  • PortabelPortable
    • linux-x64
  • CentOSCentOS
    • centos-x64
    • centos.7-x64
  • DebianDebian
    • debian-x64
    • debian.8-x64
  • FedoraFedora
    • fedora-x64
    • fedora.24-x64
    • fedora.25-x64 (.NET Core 2.0 oder höher)fedora.25-x64 (.NET Core 2.0 or later versions)
    • fedora.26-x64 (.NET Core 2.0 oder höher)fedora.26-x64 (.NET Core 2.0 or later versions)
  • Gentoo (.NET Core 2.0 oder höher)Gentoo (.NET Core 2.0 or later versions)
    • gentoo-x64
  • openSUSEopenSUSE
    • opensuse-x64
    • opensuse.42.1-x64
  • Oracle LinuxOracle Linux
    • ol-x64
    • ol.7-x64
    • ol.7.0-x64
    • ol.7.1-x64
    • ol.7.2-x64
  • Red Hat Enterprise LinuxRed Hat Enterprise Linux
    • rhel-x64
    • rhel.6-x64 (.NET Core 2.0 oder höher)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 oder höher)rhel.7.3-x64 (.NET Core 2.0 or later versions)
    • rhel.7.4-x64 (.NET Core 2.0 oder höher)rhel.7.4-x64 (.NET Core 2.0 or later versions)
  • Tizen (.NET Core 2.0 oder höher)Tizen (.NET Core 2.0 or later versions)
    • tizen
  • UbuntuUbuntu
    • ubuntu-x64
    • ubuntu.14.04-x64
    • ubuntu.14.10-x64
    • ubuntu.15.04-x64
    • ubuntu.15.10-x64
    • ubuntu.16.04-x64
    • ubuntu.16.10-x64
  • Ubuntu-AbleitungenUbuntu derivatives
    • linuxmint.17-x64
    • linuxmint.17.1-x64
    • linuxmint.17.2-x64
    • linuxmint.17.3-x64
    • linuxmint.18-x64
    • linuxmint.18.1-x64 (.NET Core 2.0 oder höher)linuxmint.18.1-x64 (.NET Core 2.0 or later versions)

Finden Sie unter Voraussetzungen für die .NET Core unter Linux für Weitere Informationen.See Prerequisites for .NET Core on Linux for more information.

MacOS RIDsmacOS RIDs

MacOS RIDs verwenden das ältere "OSX" branding.macOS RIDs use the older "OSX" branding.

  • osx-x64(.NET Core 2.0 oder höher, ist mindestens Version 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 oder höher)osx.10.12-x64 (.NET Core 1.1 or later versions)
  • osx.10.13-x64

Finden Sie unter Voraussetzungen für die .NET Core auf MacOS für Weitere Informationen.See Prerequisites for .NET Core on macOS for more information.

Android-RIDs (.NET Core 2.0 oder höher)Android RIDs (.NET Core 2.0 or later versions)

  • android
  • android.21

Siehe auchSee also

Runtime-IDsRuntime IDs