Wykaz identyfikatorów RID platformy .NET

Identyfikator RID to skrót od identyfikatora środowiska uruchomieniowego. Wartości identyfikatorów RID są używane do identyfikowania platform docelowych, na których działa aplikacja. Są one używane przez pakiety .NET do reprezentowania zasobów specyficznych dla platformy w pakietach NuGet. Następujące wartości to przykłady identyfikatorów ZAREZERWOWANYch: linux-x64, ubuntu.14.04-x64, win7-x64lub osx.10.12-x64. W przypadku pakietów z natywnymi zależnościami identyfikator RID wyznacza platformy, na których można przywrócić pakiet.

Pojedynczy identyfikator RID można ustawić w elemecie <RuntimeIdentifier> pliku projektu. Wiele identyfikatorów ZAREZERWOWANYch można zdefiniować jako listę rozdzielaną średnikami w elemecie pliku <RuntimeIdentifiers> projektu. Są one również używane za pośrednictwem --runtime opcji z następującymi poleceniami interfejsu wiersza polecenia platformy .NET:

Identyfikatory RID reprezentujące konkretne systemy operacyjne zwykle są zgodne z następującym wzorcem: [os].[version]-[architecture]-[additional qualifiers] gdzie:

  • [os] to pseudonim systemu operacyjnego/platformy. Na przykład ubuntu.

  • [version] to wersja systemu operacyjnego w postaci numeru wersji rozdzielanej kropką (.). Na przykład 15.10.

    Wersja nie powinna być wersją marketingową, ponieważ wersje marketingowe często reprezentują wiele odrębnych wersji systemu operacyjnego z różnym obszarem powierzchni interfejsu API platformy.

  • [architecture] jest architekturą procesora. Na przykład: x86, , armx64lub arm64.

  • [additional qualifiers] dodatkowo rozróżniać różne platformy. Na przykład: aot.

Wykres RID

Graf RID lub rezerwowy graf środowiska uruchomieniowego to lista identyfikatorów RID, które są ze sobą zgodne. Identyfikatory ZAREZERWOWANE są definiowane w pakiecie Microsoft.NETCore.Platforms . Listę obsługiwanych identyfikatorów RID i grafu RID można wyświetlić w pliku runtime.json , który znajduje się w dotnet/runtime repozytorium. W tym pliku widać, że wszystkie identyfikatory ZAREZERWOWANE, z wyjątkiem podstawowego, zawierają instrukcję "#import" . Te instrukcje wskazują na zgodne identyfikatory ZAREZERWOWANE.

Gdy narzędzie NuGet przywraca pakiety, próbuje znaleźć dokładne dopasowanie dla określonego środowiska uruchomieniowego. Jeśli dokładne dopasowanie nie zostanie znalezione, program NuGet wróci do grafu, dopóki nie znajdzie najbliższego zgodnego systemu zgodnie z grafem RID.

Poniższy przykład to rzeczywisty wpis identyfikatora osx.10.12-x64 RID:

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

Powyższy identyfikator RID określa, że osx.10.12-x64 importuje osx.10.11-x64element . Dlatego podczas przywracania pakietów NuGet próbuje znaleźć dokładne dopasowanie osx.10.12-x64 dla elementu w pakiecie. Jeśli program NuGet nie może znaleźć określonego środowiska uruchomieniowego, może przywrócić pakiety, które określają osx.10.11-x64 na przykład środowiska uruchomieniowe.

W poniższym przykładzie pokazano nieco większy graf RID zdefiniowany również w pliku runtime.json :

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

Wszystkie identyfikatory RID są ostatecznie mapowane z powrotem na główny identyfikator any RID.

Podczas pracy z nimi należy wziąć pod uwagę pewne zagadnienia dotyczące identyfikatorów ZAREZERWOWANYch:

  • Nie próbuj analizować identyfikatorów ZAREZERWOWANYch w celu pobrania części składników.

  • Użyj identyfikatorów ZAREZERWOWANYch, które są już zdefiniowane dla platformy.

  • Identyfikatory RID muszą być specyficzne, więc nie zakładaj niczego od rzeczywistej wartości identyfikatora RID.

  • Nie kompiluj identyfikatorów ZAREZERWOWANYch programowo, chyba że jest to absolutnie konieczne.

    Niektóre aplikacje muszą programowo obliczać identyfikatory ZAREZERWOWANE. Jeśli tak, obliczone identyfikatory ZAREZERWOWANE muszą dokładnie odpowiadać wykazowi, łącznie z wielkością liter. Identyfikatory URI z inną wielkością liter mogą powodować problemy, gdy w systemie operacyjnym jest rozróżniana wielkość liter, na przykład w systemie Linux, ponieważ wartość jest często używana podczas konstruowania elementów, takich jak ścieżki wyjściowe. Rozważmy na przykład kreatora publikowania niestandardowego w programie Visual Studio, który opiera się na informacjach z menedżera konfiguracji rozwiązania i właściwości projektu. Jeśli konfiguracja rozwiązania przekazuje nieprawidłową wartość, ARM64 na przykład zamiast arm64, może to spowodować wystąpienie nieprawidłowego identyfikatora RID, takiego jak win-ARM64.

Korzystanie z identyfikatorów RID

Aby móc używać identyfikatorów RID, musisz wiedzieć, które identyfikatory ZAREZERWOWANE istnieją. Nowe wartości są regularnie dodawane do platformy. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium.

Identyfikatory RID, które nie są powiązane z określoną wersją lub dystrybucją systemu operacyjnego, są preferowanym wyborem, zwłaszcza w przypadku obsługi wielu dystrybucji dystrybucji identyfikatorów RID mapowanych na identyfikatory ZAREZERWOWANE specyficzne dla dystrybucji.

Na poniższej liście przedstawiono niewielki podzestaw najpopularniejszych identyfikatorów ZAREZERWOWANYch używanych dla każdego systemu operacyjnego.

Identyfikatory ZAREZERWOWANE systemu Windows

Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium.

  • Windows, a nie specyficzne dla wersji
    • win-x64
    • win-x86
    • win-arm64
  • Windows 7 / Windows Server 2008 R2
    • win7-x64
    • win7-x86
  • Windows 8.1/Windows Server 2012 R2
    • win81-x64
    • win81-x86
  • Windows 11 / Windows Server 2022 / Windows 10 / Windows Server 2016
    • win10-x64
    • win10-x86
    • win10-arm64

Nie ma win11 identyfikatorów ZAREZERWOWANYch; użyj win10 identyfikatorów ZAREZERWOWANYch dla Windows 11. Aby uzyskać więcej informacji, zobacz .NET dependencies and requirements (Zależności i wymagania dotyczące platformy .NET).

Identyfikatory ZAREZERWOWANE systemu Linux

Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium. Urządzenia z dystrybucją, która nie jest wymieniona poniżej, mogą współdziałać z jednym z identyfikatorów ZAREZERWOWANYch specyficznych dla dystrybucji. Na przykład urządzenia Raspberry Pi z systemem Linux, których nie ma na liście, mogą być objęte programem linux-arm.

  • Linux, a nie specyficzny dla dystrybucji
    • linux-x64 (Większość dystrybucji klasycznych, takich jak CentOS, Debian, Fedora, Ubuntu i pochodne)
    • linux-musl-x64 (Uproszczone dystrybucje przy użyciu musl , takich jak Alpine Linux)
    • linux-arm (Dystrybucje systemu Linux działające w usłudze Arm, takie jak Raspbian na urządzeniu Raspberry Pi Model 2+)
    • linux-arm64 (Dystrybucje systemu Linux działające na 64-bitowym ramieniu, np. Ubuntu Server 64-bitowy w urządzeniu Raspberry Pi Model 3+)
  • Red Hat Enterprise Linux
    • rhel-x64 (Zastąpione przez dla linux-x64 systemu RHEL powyżej wersji 6)
    • rhel.6-x64
  • Tizen
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0
    • tizen.5.5.0
    • tizen.6.0.0
    • tizen.6.5.0
    • tizen.7.0.0

Aby uzyskać więcej informacji, zobacz .NET dependencies and requirements (Zależności i wymagania dotyczące platformy .NET).

Identyfikatory ZAREZERWOWANE systemu macOS

Identyfikatory RID systemu macOS używają starszego znakowania "OSX". Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium.

  • macOS, a nie specyficzne dla wersji
    • osx-x64 (Minimalna wersja systemu operacyjnego to macOS 10.12 Sierra)
  • macOS 10.10 Yosemite
    • osx.10.10-x64
  • macOS 10.11 El Capitan
    • osx.10.11-x64
  • macOS 10.12 Sierra
    • osx.10.12-x64
  • macOS 10.13 High Sierra
    • osx.10.13-x64
  • macOS 10.14 Mojave
    • osx.10.14-x64
  • macOS 10.15 Catalina
    • osx.10.15-x64
  • macOS 11.0 Big Sur
    • osx.11.0-x64
    • osx.11.0-arm64
  • macOS 12 Monterey
    • osx.12-x64
    • osx.12-arm64
  • MacOS 13 Ventura
    • osx.13-x64
    • osx.13-arm64

Aby uzyskać więcej informacji, zobacz .NET dependencies and requirements (Zależności i wymagania dotyczące platformy .NET).

Identyfikatory RID systemu iOS

Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium.

  • iOS, a nie specyficzne dla wersji
    • ios-arm64
  • iOS 10
    • ios.10-arm64
  • iOS 11
    • ios.11-arm64
  • iOS 12
    • ios.12-arm64
  • iOS 13
    • ios.13-arm64
  • iOS 14
    • ios.14-arm64
  • iOS 15
    • ios.15-arm64

Identyfikatory RID systemu Android

Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i kompletną wersję, zobacz plik runtime.json w dotnet/runtime repozytorium.

  • Android, a nie specyficzny dla wersji
    • android-arm64
  • Android 21
    • android.21-arm64
  • Android 22
    • android.22-arm64
  • Android 23
    • android.23-arm64
  • Android 24
    • android.24-arm64
  • Android 25
    • android.25-arm64
  • Android 26
    • android.26-arm64
  • Android 27
    • android.27-arm64
  • Android 28
    • android.28-arm64
  • Android 29
    • android.29-arm64
  • Android 30
    • android.30-arm64
  • Android 31
    • android.31-arm64
  • Android 32
    • android.32-arm64

Zobacz też