.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.

Eine einzelne RID kann im <RuntimeIdentifier>-Element Ihrer Projektdatei festgelegt werden.A single RID can be set in the <RuntimeIdentifier> element of your project file. Mehrere RIDs können als Liste mit Semikolon als Trennzeichen im <RuntimeIdentifiers>-Element der Projektdatei definiert werden.Multiple RIDs can be defined as a semicolon-delimited list in the project file's <RuntimeIdentifiers> element. 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.For example: aot.

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 und die bevorzugte Wahl bei der Verwendung von .NET Core 2.0 und höher sind.They are new values added to the RID graph that aren't tied to a specific version or OS distribution and are the preferred choice when using .NET Core 2.0 and higher. Sie sind besonders nützlich beim Umgang mit mehreren Linux-Distributionen, da die meisten Distributions-RIDs portable RIDs sind.They're particularly useful when dealing with multiple Linux distros since most distribution RIDs are mapped to the portable RIDs.

Die folgende Liste enthält eine kleine Untergruppe der am häufigsten verwendeten RIDs für jedes Betriebssystem.The following list shows a small subset of the most common RIDs used for each OS.

RIDs für WindowsWindows RIDs

Nur allgemeine Werte werden aufgeführt.Only common values are listed. 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.

  • Portabel (.NET Core 2.0 oder höher)Portable (.NET Core 2.0 or later versions)
    • win-x64
    • win-x86
    • win-arm
    • win-arm64
  • Windows 7 / Windows Server 2008 R2Windows 7 / Windows Server 2008 R2
    • win7-x64
    • win7-x86
  • 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

Weitere Informationen finden Sie unter .NET Core-Abhängigkeiten und -Anforderungen.See .NET Core dependencies and requirements for more information.

RIDs für LinuxLinux RIDs

Nur allgemeine Werte werden aufgeführt.Only common values are listed. 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. Geräte, die unter einer nicht aufgeführten Distribution ausgeführt werden, funktionieren möglicherweise mit einem der portablen RIDs.Devices running a distribution not listed below may work with one of the Portable RIDs. Beispielsweise können Raspberry Pi-Geräte, die unter einer nicht aufgeführten Linux-Distribution ausgeführt werden, mit linux-arm erreicht werden.For example, Raspberry Pi devices running a Linux distribution not listed can be targeted with linux-arm.

  • Portabel (.NET Core 2.0 oder höher)Portable (.NET Core 2.0 or later versions)
    • linux-x64 (Die meisten Desktopdistributionen wie CentOS, Debian, Fedora, Ubuntu und Ableitungen)linux-x64 (Most desktop distributions like CentOS, Debian, Fedora, Ubuntu and derivatives)
    • linux-musl-x64 (Einfache Distributionen mit musl wie Alpine Linux)linux-musl-x64 (Lightweight distributions using musl like Alpine Linux)
    • linux-arm (Linux-Distributionen wie Raspberry Pi, die auf ARM ausgeführt werden)linux-arm (Linux distributions running on ARM like Raspberry Pi)
  • Red Hat Enterprise LinuxRed Hat Enterprise Linux
    • rhel-x64 (Ersetzt durch linux-x64 für RHEL ab Version 6)rhel-x64 (Superseded by linux-x64 for RHEL above version 6)
    • rhel.6-x64 (.NET Core 2.0 oder höher)rhel.6-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
    • tizen.4.0.0
    • tizen.5.0.0

Weitere Informationen finden Sie unter .NET Core-Abhängigkeiten und -Anforderungen.See .NET Core dependencies and requirements for more information.

Relative IDs für macOSmacOS RIDs

Relative IDs für macOS verwenden das ältere Branding „OSX“.macOS RIDs use the older "OSX" branding. Nur allgemeine Werte werden aufgeführt.Only common values are listed. 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.

  • Portabel (.NET Core 2.0 oder höher)Portable (.NET Core 2.0 or later versions)
    • osx-x64 (Mindestversion des Betriebssystems ist macOS 10.12 Sierra)osx-x64 (Minimum OS version is macOS 10.12 Sierra)
  • macOS 10.10 YosemitemacOS 10.10 Yosemite
    • osx.10.10-x64
  • macOS 10.11 El CapitanmacOS 10.11 El Capitan
    • osx.10.11-x64
  • macOS 10.12 Sierra (.NET Core 1.1 oder höher)macOS 10.12 Sierra (.NET Core 1.1 or later versions)
    • osx.10.12-x64
  • macOS 10.13 Sierra (.NET Core 1.1 oder höher)macOS 10.13 High Sierra (.NET Core 1.1 or later versions)
    • osx.10.13-x64
  • macOS 10.14 Mojave (.NET Core 1.1 oder höher)macOS 10.14 Mojave (.NET Core 1.1 or later versions)
    • osx.10.14-x64

Weitere Informationen finden Sie unter .NET Core-Abhängigkeiten und -Anforderungen.See .NET Core dependencies and requirements for more information.

Siehe auchSee also