Katalog identifikátorů RID .NET
Identifikátor RID je krátký pro identifikátor modulu runtime. Hodnoty RID slouží k identifikaci cílových platforem, ve kterých se aplikace spouští.
Balíčky .NET používají k reprezentaci prostředků specifických pro platformu v balíčcích NuGet. Následující hodnoty jsou příklady identifikátorů RID: linux-x64, ubuntu.14.04-x64, win7-x64, nebo osx.10.12-x64.
Pro balíčky s nativními závislostmi určuje identifikátor RID, na kterých platformách lze balíček obnovit.
Jeden identifikátor RID lze nastavit v elementu <RuntimeIdentifier> souboru projektu. Více identifikátorů RID lze definovat jako seznam oddělený středníkem v elementu <RuntimeIdentifiers> souboru projektu. Používají se také prostřednictvím možnosti s následujícími příkazy rozhraní příkazového--runtime řádku .NET:
Identifikátory RID, které představují konkrétní operační systémy, obvykle se řídí tímto vzorem: [os].[version]-[architecture]-[additional qualifiers]
[os]je moniker operačního systému nebo platformy. Například,ubuntu.[version]je verze operačního systému ve formě čísla verze odděleného tečkou (.). Například,15.10.Verze by neměla být marketingová verze, protože marketingové verze často představují více diskrétních verzí operačního systému s různou plochou rozhraní API platformy.
[architecture]je architektura procesoru. Například:x86, ,x64neboarmarm64.[additional qualifiers]dále odlišují různé platformy. Příklad:aot.
Graf identifikátorů RID
Graf RID nebo náhradní graf modulu runtime je seznam identifikátorů GUID, které jsou vzájemně kompatibilní. Identifikátory RID jsou definovány v balíčku Microsoft.NETCore.Platform . Seznam podporovaných identifikátorů GUID a grafu RID můžete zobrazit v souboru runtime.json , který se nachází v dotnet/runtime úložišti. V tomto souboru můžete vidět, že všechny identifikátory GUID s výjimkou základního souboru obsahují "#import" příkaz. Tyto příkazy označují kompatibilní identifikátory RID.
Když NuGet obnoví balíčky, pokusí se najít přesnou shodu pro zadaný modul runtime. Pokud se přesná shoda nenajde, Provede NuGet graf zpět, dokud nenajde nejbližší kompatibilní systém podle grafu RID.
Následující příklad je skutečná položka identifikátoru osx.10.12-x64 RID:
"osx.10.12-x64": {
"#import": [ "osx.10.12", "osx.10.11-x64" ]
}
Výše uvedený identifikátor RID určuje, že osx.10.12-x64 importuje osx.10.11-x64. Takže když NuGet obnoví balíčky, pokusí se najít přesnou shodu pro osx.10.12-x64 balíček. Pokud NuGet nemůže najít konkrétní modul runtime, může obnovit balíčky, které určují osx.10.11-x64 moduly runtime, například.
Následující příklad ukazuje mírně větší graf RID definovaný také v souboru runtime.json :
win7-x64 win7-x86
| \ / |
| win7 |
| | |
win-x64 | win-x86
\ | /
win
|
any
Všechny identifikátory GUID se nakonec mapuje zpět na kořenový identifikátor any RID.
Při práci s nimi je potřeba vzít v úvahu některé aspekty identifikátorů RID:
Nepokoušejte se analyzovat identifikátory GUID pro načtení částí komponent.
Použijte identifikátory RID, které jsou již definované pro platformu.
Identifikátory RID musí být specifické, takže nepředpokládáte nic ze skutečné hodnoty identifikátoru RID.
Nevystavujte identifikátory RId programově, pokud to není nezbytně nutné.
Některé aplikace musí programově vypočítat identifikátory RID. Pokud ano, počítané identifikátory RID musí přesně odpovídat katalogu, včetně v případě velikosti. Identifikátory RID s různými písmeny by způsobovaly problémy, když je operační systém citlivý na malá a malá písmena, například Linux, protože hodnota se často používá při vytváření věcí, jako jsou výstupní cesty. Představte si například průvodce vlastním publikováním v sadě Visual Studio, který spoléhá na informace z správce konfigurace řešení a vlastností projektu. Pokud konfigurace řešení předá neplatnou hodnotu, například
ARM64místoarm64ní, může dojít k neplatnému identifikátoru RID, napříkladwin-ARM64.
Použití identifikátorů RID
Abyste mohli používat identifikátory RID, musíte vědět, které identifikátory GUID existují. Nové hodnoty se pravidelně přidávají na platformu.
Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime .
Identifikátory RID, které nejsou svázané s konkrétní verzí nebo distribucí operačního systému, jsou upřednostňovanou volbou, zejména při práci s více distribucemi linuxových distribucí, protože většina distribuovaných identifikátorů RID se mapuje na nekontribuční identifikátory RID.
Následující seznam ukazuje malou podmnožinu nejběžnějších identifikátorů RID používaných pro každý operační systém.
Identifikátory RI Pro Windows
Jsou uvedeny pouze běžné hodnoty. Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime .
- Windows, nikoli specifické pro verzi
win-x64win-x86win-armwin-arm64
- Windows 7 / Windows Server 2008 R2
win7-x64win7-x86
- Windows 8.1 / Windows Server 2012 R2
win81-x64win81-x86win81-arm
- Windows 11 / Windows Server 2022 / Windows 10 / Windows Server 2016
win10-x64win10-x86win10-armwin10-arm64
Nejsou k dispozici žádné win11 identifikátory GUID; pro Windows 11 použijte win10 identifikátory GUID. Další informace najdete v tématu Závislosti a požadavky .NET.
Linuxové identifikátory RID
Jsou uvedeny pouze běžné hodnoty. Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime . Zařízení se spuštěnou distribucí, která nejsou uvedená níže, můžou fungovat s jednou z distribuovaných identifikátorů RID specifických pro distribuci. Například zařízení Raspberry Pi s linuxovou distribucí, která nejsou uvedená, mohou být zacílena na linux-arm.
- Linux, není specifický pro distribuci
linux-x64(Většina desktopových distribucí, jako jsou CentOS, Debian, Fedora, Ubuntu a deriváty)linux-musl-x64(Lightweight distributions using musl like Alpine Linux)linux-arm(Distribuce Linuxu běžící na Arm, jako je Raspbian na Raspberry Pi Model 2+)linux-arm64(Distribuce Linuxu běžící na 64bitovém armu, jako je Ubuntu Server 64bitová verze na Raspberry Pi Model 3+)
- Red Hat Enterprise Linux
rhel-x64(Nahrazeno prolinux-x64RHEL výše verze 6)rhel.6-x64
- Tizen
tizentizen.4.0.0tizen.5.0.0
Další informace najdete v tématu Závislosti a požadavky .NET.
identifikátory GUID pro macOS
identifikátory RID pro macOS používají starší branding OSX. Jsou uvedeny pouze běžné hodnoty. Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime .
- macOS, nikoli specifické pro verzi
osx-x64(Minimální verze operačního systému je 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-x64osx.11.0-arm64
- macOS 12 Monterey
osx.12-x64osx.12-arm64
Další informace najdete v tématu Závislosti a požadavky .NET.
Identifikátory RI pro iOS
Jsou uvedeny pouze běžné hodnoty. Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime .
- iOS, ne verze
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
Identifikátory RI pro Android
Jsou uvedeny pouze běžné hodnoty. Nejnovější a kompletní verzi najdete v souboru runtime.json v úložišti dotnet/runtime .
- Android, nikoli konkrétní verze
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