Catalogo RID di .NET Core.NET Core RID Catalog

RID è l'acronimo di Runtime IDentifier.RID is short for Runtime IDentifier. I valori RID vengono usati per identificare le piattaforme di destinazione in cui viene eseguita l'applicazioneRID values are used to identify target platforms where the application runs. e vengono usati dai pacchetti .NET per rappresentare risorse specifiche della piattaforma in pacchetti NuGet.They're used by .NET packages to represent platform-specific assets in NuGet packages. I valori seguenti sono esempi di RID: linux-x64, ubuntu.14.04-x64, win7-x64 o osx.10.12-x64.The following values are examples of RIDs: linux-x64, ubuntu.14.04-x64, win7-x64, or osx.10.12-x64. Per i pacchetti con dipendenze native, il RID specifica le piattaforme su cui può essere ripristinato il pacchetto.For the packages with native dependencies, the RID designates on which platforms the package can be restored.

Un singolo RID può essere impostato nell'elemento <RuntimeIdentifier> del file di progetto.A single RID can be set in the <RuntimeIdentifier> element of your project file. Più RID possono essere definiti come elenco delimitato da punto e virgola nell'elemento <RuntimeIdentifiers> del file di progetto.Multiple RIDs can be defined as a semicolon-delimited list in the project file's <RuntimeIdentifiers> element. Vengono usati anche tramite l'opzione --runtime con i comandi CLI di .NET Core seguenti:They're also used via the --runtime option with the following .NET Core CLI commands:

I RID che rappresentano un sistema operativo reale seguono in genere il modello seguente: [os].[version]-[architecture]-[additional qualifiers] dove:RIDs that represent concrete operating systems usually follow this pattern: [os].[version]-[architecture]-[additional qualifiers] where:

  • [os] è il moniker di sistema operativo/piattaforma.[os] is the operating/platform system moniker. Ad esempio ubuntu.For example, ubuntu.

  • [version] è il numero di versione del sistema operativo nel formato separato da punti (.).[version] is the operating system version in the form of a dot-separated (.) version number. Ad esempio 15.10.For example, 15.10.

    • Non deve trattarsi di versioni marketing, poiché tali versioni rappresentano spesso più versioni discrete del sistema operativo con una superficie delle API della piattaforma variabile.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] indica l'architettura del processore,[architecture] is the processor architecture. ad esempio x86, x64, arm o arm64.For example: x86, x64, arm, or arm64.

  • [additional qualifiers] differenziano ulteriormente piattaforme diverse.[additional qualifiers] further differentiate different platforms. Ad esempio: aot.For example: aot.

Grafico RIDRID graph

Il grafico RID o grafico di fallback di runtime è un elenco di RID compatibili tra loro.The RID graph or runtime fallback graph is a list of RIDs that are compatible with each other. I RID sono definiti nel pacchetto Microsoft.NETCore.Platforms.The RIDs are defined in the Microsoft.NETCore.Platforms package. È possibile visualizzare l'elenco di RID supportati e il grafico RID nel file runtime.json , disponibile nel repository CoreFX.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 questo file, si noterà che tutti i RID, ad eccezione di quello di base, contengono un'istruzione "#import".In this file, you can see that all RIDs, except for the base one, contain an "#import" statement. Queste istruzioni indicano RID compatibili.These statements indicate compatible RIDs.

Quando NuGet ripristina i pacchetti, tenta di trovare una corrispondenza esatta per il runtime specificato.When NuGet restores packages, it tries to find an exact match for the specified runtime. Se non trova una corrispondenza esatta, NuGet ripercorre il grafico a ritroso fino a individuare il sistema compatibile più simile in base al grafico RID.If an exact match is not found, NuGet walks back the graph until it finds the closest compatible system according to the RID graph.

L'esempio seguente è la voce effettiva per il RID osx.10.12-x64: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" ]
}

Il RID sopra riportato specifica che osx.10.12-x64 importa osx.10.11-x64.The above RID specifies that osx.10.12-x64 imports osx.10.11-x64. Quando NuGet ripristina i pacchetti, quindi, tenta di trovare una corrispondenza esatta per osx.10.12-x64 nel pacchetto.So, when NuGet restores packages, it tries to find an exact match for osx.10.12-x64 in the package. Se NuGet non riesce a trovare il runtime specifico, può ripristinare i pacchetti che specificano i runtime osx.10.11-x64, ad esempio.If NuGet cannot find the specific runtime, it can restore packages that specify osx.10.11-x64 runtimes, for example.

L'esempio seguente mostra un grafico RID leggermente più ampio, anch'esso definito nel file runtime.json: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

Tutti i RID finiscono per mappare nuovamente al RID any radice.All RIDs eventually map back to the root any RID.

Esistono alcune considerazioni che è necessario tenere presenti quando si lavora con i RID:There are some considerations about RIDs that you have to keep in mind when working with them:

  • I RID sono stringhe opache e devono essere trattati come black box.RIDs are opaque strings and should be treated as black boxes.
  • Non creare i RID a livello di codice.Don't build RIDs programmatically.
  • Usare i RID già definiti per la piattaforma.Use RIDs that are already defined for the platform.
  • I RID devono essere specifici, quindi non desumere nulla dal valore RID effettivo.The RIDs need to be specific, so don't assume anything from the actual RID value.

Uso dei RIDUsing RIDs

Per usare i RID, è necessario sapere quali sono quelli disponibili.To be able to use RIDs, you have to know which RIDs exist. Alla piattaforma vengono regolarmente aggiunti nuovi valori.New values are added regularly to the platform. Per la versione più recente e completa, vedere il file runtime.json nel repository CoreFX.For the latest and complete version, see the runtime.json file on CoreFX repo.

.NET Core 2.0 SDK introduce il concetto di RID portabili..NET Core 2.0 SDK introduces the concept of portable RIDs. Si tratta di nuovi valori aggiunti al grafico RID che non sono associati a una versione specifica o a una distribuzione specifica del sistema operativo e sono la scelta preferibile quando si usa .NET Core 2.0 e versioni successive.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. Risultano particolarmente utili per la gestione di più distribuzioni di Linux, perché la maggior parte dei RID di distribuzione sono mappati ai RID portabili.They're particularly useful when dealing with multiple Linux distros since most distribution RIDs are mapped to the portable RIDs.

L'elenco seguente mostra un piccolo subset dei RID più comuni usati per ogni sistema operativo.The following list shows a small subset of the most common RIDs used for each OS.

RID WindowsWindows RIDs

Sono elencati solo i valori comuni.Only common values are listed. Per la versione più recente e completa, vedere il file runtime.json nel repository CoreFX.For the latest and complete version, see the runtime.json file on CoreFX repo.

  • Portable (.NET Core 2.0 o versioni successive)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

Per altre informazioni, vedere Prerequisiti per .NET Core in Windows.See Prerequisites for .NET Core on Windows for more information.

RID LinuxLinux RIDs

Sono elencati solo i valori comuni.Only common values are listed. Per la versione più recente e completa, vedere il file runtime.json nel repository CoreFX.For the latest and complete version, see the runtime.json file on CoreFX repo. I dispositivi che eseguono una distribuzione non elencata di seguito potrebbero funzionare con uno dei RID portabili.Devices running a distribution not listed below may work with one of the Portable RIDs. Ad esempio, i dispositivi Raspberry Pi che eseguono una distribuzione di Linux non elencata possono essere assegnati a linux-arm.For example, Raspberry Pi devices running a Linux distribution not listed can be targeted with linux-arm.

  • Portable (.NET Core 2.0 o versioni successive)Portable (.NET Core 2.0 or later versions)
    • linux-x64 (La maggior parte delle distribuzioni desktop, ad esempio CentOS, Debian, Fedora, Ubuntu e derivati)linux-x64 (Most desktop distributions like CentOS, Debian, Fedora, Ubuntu and derivatives)
    • linux-musl-x64 (Le distribuzioni leggere che usano musl come Alpine Linux)linux-musl-x64 (Lightweight distributions using musl like Alpine Linux)
    • linux-arm (Le distribuzioni di Linux in esecuzione su ARM come Raspberry Pi)linux-arm (Linux distributions running on ARM like Raspberry Pi)
  • Red Hat Enterprise LinuxRed Hat Enterprise Linux
    • rhel-x64 (Sostituito da linux-x64 per RHEL versioni successive alla versione 6)rhel-x64 (Superseded by linux-x64 for RHEL above version 6)
    • rhel.6-x64 (.NET Core 2.0 o versioni successive)rhel.6-x64 (.NET Core 2.0 or later versions)
  • Tizen (.NET Core 2.0 o versioni successive)Tizen (.NET Core 2.0 or later versions)
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0

Per altre informazioni, vedere Prerequisiti per .NET Core in Linux.See Prerequisites for .NET Core on Linux for more information.

RID macOSmacOS RIDs

I RID macOS usano la personalizzazione "OSX" precedente.macOS RIDs use the older "OSX" branding. Sono elencati solo i valori comuni.Only common values are listed. Per la versione più recente e completa, vedere il file runtime.json nel repository CoreFX.For the latest and complete version, see the runtime.json file on CoreFX repo.

  • Portable (.NET Core 2.0 o versioni successive)Portable (.NET Core 2.0 or later versions)
    • osx-x64 (La versione minima del sistema operativo è 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 o versioni successive)macOS 10.12 Sierra (.NET Core 1.1 or later versions)
    • osx.10.12-x64
  • macOS 10.13 High Sierra (.NET Core 1.1 o versioni successive)macOS 10.13 High Sierra (.NET Core 1.1 or later versions)
    • osx.10.13-x64
  • macOS 10.14 Mojave (.NET Core 1.1 o versioni successive)macOS 10.14 Mojave (.NET Core 1.1 or later versions)
    • osx.10.14-x64

Per altre informazioni, vedere Prerequisiti per .NET Core in macOS.See Prerequisites for .NET Core on macOS for more information.

Vedere ancheSee also