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, , x64nebo armarm64.

  • [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 ARM64 místo arm64ní, může dojít k neplatnému identifikátoru RID, například win-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-x64
    • win-x86
    • win-arm
    • win-arm64
  • Windows 7 / Windows Server 2008 R2
    • win7-x64
    • win7-x86
  • Windows 8.1 / Windows Server 2012 R2
    • win81-x64
    • win81-x86
    • win81-arm
  • Windows 11 / Windows Server 2022 / Windows 10 / Windows Server 2016
    • win10-x64
    • win10-x86
    • win10-arm
    • win10-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 pro linux-x64 RHEL výše verze 6)
    • rhel.6-x64
  • Tizen
    • tizen
    • tizen.4.0.0
    • tizen.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-x64
    • osx.11.0-arm64
  • macOS 12 Monterey
    • osx.12-x64
    • osx.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

Viz také