Wykaz identyfikatorów RID platformy .NET
Identyfikator RID jest krótki dla identyfikatora środowiska uruchomieniowego. Wartości identyfikatorów RID służą 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. Poniżej przedstawiono przykłady identyfikatorów ZAREZERWOWANYch: linux-x64
, ubuntu.14.04-x64
, win7-x64
lub osx.10.12-x64
.
W przypadku pakietów z zależnościami natywnymi identyfikator RID wyznacza platformy, na których można przywrócić pakiet.
Pojedynczy identyfikator RID można ustawić w <RuntimeIdentifier>
elemecie pliku projektu. Wiele identyfikatorów RD można zdefiniować jako rozdzielaną średnikami listę w elemecie pliku <RuntimeIdentifiers>
projektu. Są one również używane za pośrednictwem opcji z następującymi poleceniami interfejsu wiersza polecenia platformy .NET:--runtime
Identyfikatory ZAREZERWOWANE reprezentujące konkretne systemy operacyjne zwykle są zgodne z tym wzorcem: gdzie: [os].[version]-[architecture]-[additional qualifiers]
[os]
jest monikerem systemu operacyjnego/platformy. Na przykładubuntu
.[version]
jest wersją systemu operacyjnego w postaci numeru wersji rozdzielanej kropką (.
). Na przykład15.10
.Wersja nie powinna być wersją marketingową, ponieważ wersje marketingowe często reprezentują wiele dyskretnych wersji systemu operacyjnego z różnymi obszarami powierzchni interfejsu API platformy.
[architecture]
jest architekturą procesora. Na przykład:x86
, ,arm
x64
lubarm64
.[additional qualifiers]
dodatkowo rozróżniać różne platformy. Na przykład:aot
.
Wykres RID
Wykres RID lub wykres rezerwowy środowiska uruchomieniowego to lista identyfikatorów ZAREZERWOWANYch, które są ze sobą zgodne. Identyfikatory ZAREZERWOWANE są definiowane w pakiecie Microsoft.NETCore.Platforms . W pliku runtime.json , który znajduje się w dotnet/runtime
repozytorium, można wyświetlić listę obsługiwanych identyfikatorów IDENTYFIKATORów RID i wykres rid. W tym pliku widać, że wszystkie identyfikatory ZAREZERWOWANE, z wyjątkiem podstawowego, zawierają instrukcję "#import"
. Te instrukcje wskazują zgodne identyfikatory ZAREZERWOWANE.
Podczas przywracania pakietów NuGet próbuje znaleźć dokładne dopasowanie określonego środowiska uruchomieniowego. Jeśli dokładne dopasowanie nie zostanie znalezione, narzędzie NuGet powróci do grafu, dopóki nie znajdzie najbliższego zgodnego systemu zgodnie z grafem RID.
Poniższy przykład to rzeczywisty wpis dla 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-x64
element . Dlatego po przywróceniu pakietów NuGet próbuje znaleźć dokładne dopasowanie osx.10.12-x64
w pakiecie. Jeśli narzędzie 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 ZAREZERWOWANE ostatecznie są mapowane z powrotem do głównego any
identyfikatora 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 RID, które są już zdefiniowane dla platformy.
Identyfikatory ZAREZERWOWANE muszą być specyficzne, więc nie zakładaj niczego z rzeczywistej wartości identyfikatora RID.
Nie twórz identyfikatorów RID programowo, chyba że jest to absolutnie konieczne.
Niektóre aplikacje muszą programowo obliczać identyfikatory ZAREZERWOWANE. Jeśli tak, obliczone identyfikatory ZAREZERWOWANE muszą być dokładnie zgodne z wykazem, łącznie z wielkością liter. Identyfikatory ZAREZERWOWANE z inną wielkością mogą powodować problemy, gdy system operacyjny ma 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 zamiastarm64
, może to spowodować nieprawidłowe identyfikatory RID, takie jakwin-ARM64
.
Używanie 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 pełną wersję, zobacz plik runtime.json w dotnet/runtime
repozytorium.
Identyfikatory ZAREZERWOWANE, 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, ponieważ większość identyfikatorów ZAREZERWOWANYch dystrybucji jest mapowana na identyfikatory ZAREZERWOWANE specyficzne dla dystrybucji.
Na poniższej liście przedstawiono niewielki podzestaw najczęściej używanych identyfikatorów ZAREZERWOWANYch dla każdego systemu operacyjnego.
Identyfikatory IDENTYFIKATORów systemu Windows
Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i pełną 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 RID; 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 pełną wersję, zobacz plik runtime.json w dotnet/runtime
repozytorium. Urządzenia z dystrybucją, która nie jest wymieniona poniżej, mogą współpracować z jednym z identyfikatorów ZAREZERWOWANYch specyficznych dla dystrybucji. Na przykład urządzenia Raspberry Pi z dystrybucją systemu 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 komputerów, 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 w urządzeniu Raspberry Pi Model 2+)linux-arm64
(Dystrybucje systemu Linux działające w 64-bitowej wersji arm, takie jak Ubuntu Server 64-bitowy w urządzeniu Raspberry Pi Model 3+)linux-bionic-arm64
(Dystrybucje przy użyciu biblioteki bioniczej systemu Android, na przykład Termux)
- Red Hat Enterprise Linux
rhel-x64
(Zastąpione przezlinux-x64
dla 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 RID systemu macOS
Identyfikatory RID systemu macOS używają starszego znakowania "OSX". Wyświetlane są tylko typowe wartości. Aby uzyskać najnowszą i pełną 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