.NET Core RID 카탈로그.NET Core RID Catalog

RID는 Runtime Identifier(런타임 식별자) 의 약어입니다.RID is short for Runtime Identifier. RID 값은 애플리케이션을 실행하는 대상 플랫폼을 식별하는 데 사용됩니다.RID values are used to identify target platforms where the application runs. NuGet 패키지에서 .NET 패키지의 플랫폼 관련 자산을 나타내는 데 사용됩니다.They're used by .NET packages to represent platform-specific assets in NuGet packages. RID 값의 예로 linux-x64, ubuntu.14.04-x64, win7-x64, osx.10.12-x64 등을 들 수 있습니다.The following values are examples of RIDs: linux-x64, ubuntu.14.04-x64, win7-x64, or osx.10.12-x64. 기본 종속성이 있는 패키지의 경우 RID는 패키지를 복원할 수 있는 플랫폼을 지정합니다.For the packages with native dependencies, the RID designates on which platforms the package can be restored.

단일 RID는 프로젝트 파일의 <RuntimeIdentifier> 요소에 설정할 수 있습니다.A single RID can be set in the <RuntimeIdentifier> element of your project file. 여러 RID는 프로젝트 파일의 <RuntimeIdentifiers> 요소에서 세미콜론으로 구분된 목록으로 정의할 수 있습니다.Multiple RIDs can be defined as a semicolon-delimited list in the project file's <RuntimeIdentifiers> element. 다음과 같은 .NET Core CLI 명령을 사용하여 --runtime 옵션을 통해서도 사용됩니다.They're also used via the --runtime option with the following .NET Core CLI commands:

구체적인 운영 체제를 나타내는 RID는 일반적으로 [os].[version]-[architecture]-[additional qualifiers]의 패턴을 따릅니다. 각각은 다음과 같습니다.RIDs that represent concrete operating systems usually follow this pattern: [os].[version]-[architecture]-[additional qualifiers] where:

  • [os] - 운영 체제/플랫폼 모니커입니다.[os] is the operating/platform system moniker. 예: ubuntu.For example, ubuntu.

  • [version] - 점으로 구분된(.) 버전 번호 형식의 운영 체제 버전입니다.[version] is the operating system version in the form of a dot-separated (.) version number. 예: 15.10.For example, 15.10.

    • 버전은 마케팅 버전이어서는 안 됩니다. 마케팅 버전은 종종 다양한 플랫폼 API 노출 영역이 있는 운영 체제의 여러 개별 버전을 나타내기 때문입니다.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] - 프로세서 아키텍처입니다.[architecture] is the processor architecture. 예를 들면 x86, x64, arm, arm64 등입니다.For example: x86, x64, arm, or arm64.

  • [additional qualifiers] - 다른 플랫폼을 추가로 구분합니다.[additional qualifiers] further differentiate different platforms. 예를 들어 aot을 참조하십시오.For example: aot.

RID 그래프RID graph

RID 그래프 또는 런타임 Fallback 그래프는 서로 호환되는 RID 목록입니다.The RID graph or runtime fallback graph is a list of RIDs that are compatible with each other. RID는 Microsoft.NETCore.Platforms 패키지에 정의되어 있습니다.The RIDs are defined in the Microsoft.NETCore.Platforms package. 지원되는 RID 및 RID 그래프 목록은 dotnet/runtime 리포지토리에 있는 runtime.json 파일에서 확인할 수 있습니다.You can see the list of supported RIDs and the RID graph in the runtime.json file, which is located at the dotnet/runtime repository. 이 파일에서 기본 RID를 제외하고 모든 RID에 "#import" 문이 포함되어 있음을 알 수 있습니다.In this file, you can see that all RIDs, except for the base one, contain an "#import" statement. 이러한 문은 호환되는 RID를 나타냅니다.These statements indicate compatible RIDs.

NuGet에서 패키지를 복원할 때 지정된 런타임에 대한 정확한 일치를 찾으려고 합니다.When NuGet restores packages, it tries to find an exact match for the specified runtime. 정확한 일치를 찾을 수 없는 경우 NuGet은 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.

다음 예제는 osx.10.12-x64 RID의 실제 항목입니다.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" ]
}

위의 RID는 osx.10.12-x64osx.10.11-x64를 가져오도록 지정합니다.The above RID specifies that osx.10.12-x64 imports osx.10.11-x64. 따라서 NuGet에서 패키지를 복원할 때 패키지에서 osx.10.12-x64와 정확히 일치하는 값을 찾으려고 합니다.So, when NuGet restores packages, it tries to find an exact match for osx.10.12-x64 in the package. NuGet이 특정 런타임을 찾을 수 없는 경우 예를 들어 osx.10.11-x64 런타임을 지정하는 패키지를 복원할 수 있습니다.If NuGet cannot find the specific runtime, it can restore packages that specify osx.10.11-x64 runtimes, for example.

다음 예제에서는 마찬가지로 runtime.json 파일에 정의된 약간 더 큰 RID 그래프를 보여 줍니다.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

모든 RID는 결국 루트 any RID에 다시 매핑됩니다.All RIDs eventually map back to the root any RID.

RID를 사용할 때는 RID에 대한 다음과 같은 몇 가지 고려 사항을 알고 있어야 합니다.There are some considerations about RIDs that you have to keep in mind when working with them:

  • 구성 요소 파트를 검색하기 위해 RID를 구문 분석하지 않습니다.Don't try to parse RIDs to retrieve component parts.
  • RID를 프로그래밍 방식으로 빌드하지 마세요.Don't build RIDs programmatically.
  • 플랫폼에 대해 이미 정의된 RID를 사용합니다.Use RIDs that are already defined for the platform.
  • RID는 구체적이어야 하므로 실제 RID 값에서 어느 것도 가정하지 마세요.The RIDs need to be specific, so don't assume anything from the actual RID value.

RID 사용Using RIDs

RID를 사용할 수 있으려면 어떤 RID가 있는지 알아야 합니다.To be able to use RIDs, you have to know which RIDs exist. 새 값이 플랫폼에 정기적으로 추가됩니다.New values are added regularly to the platform. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.For the latest and complete version, see the runtime.json file on the dotnet/runtime repository.

.NET Core 2.0 SDK에서는 이식 가능 RID라는 개념을 도입합니다..NET Core 2.0 SDK introduces the concept of portable RIDs. 이식 가능 RID란 RID 그래프에 새로 추가된 값으로서, 아직 특정 버전 또는 OS 배포에 연결되지 않았으며 .NET Core 2.0 이상을 사용할 때 권장됩니다.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. 대부분의 배포 RID는 이식 가능 RID에 매핑되므로 이 값은 여러 Linux 배포판을 다룰 때 매우 유용합니다.They're particularly useful when dealing with multiple Linux distros since most distribution RIDs are mapped to the portable RIDs.

다음 목록에서는 각 OS에 사용되는 일반적인 RID의 몇 가지 예를 보여줍니다.The following list shows a small subset of the most common RIDs used for each OS.

Windows RIDWindows RIDs

자주 사용되는 값만 나열되어 있습니다.Only common values are listed. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.For the latest and complete version, see the runtime.json file on dotnet/runtime repository.

  • 이식 가능(.NET Core 2.0 이상 버전)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

자세한 내용은 .NET Core 종속성 및 요구 사항을 참조하세요.For more information, see .NET Core dependencies and requirements.

Linux RIDLinux RIDs

자주 사용되는 값만 나열되어 있습니다.Only common values are listed. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.For the latest and complete version, see the runtime.json file on the dotnet/runtime repository. 아래에 나열되지 않은 배포를 실행하는 디바이스의 경우, 이식 가능 RID 중 하나와 작동할 수 있습니다.Devices running a distribution not listed below may work with one of the Portable RIDs. 예를 들어, 여기에 나열되지 않은 Linux 배포를 실행하는 Raspberry Pi 디바이스는 linux-arm을 사용하여 대상으로 지정할 수 있습니다.For example, Raspberry Pi devices running a Linux distribution not listed can be targeted with linux-arm.

  • 이식 가능(.NET Core 2.0 이상 버전)Portable (.NET Core 2.0 or later versions)
    • linux-x64(CentOS, Debian, Fedora, Ubuntu 및 파생 버전을 비롯한 대부분의 데스크톱 배포)linux-x64 (Most desktop distributions like CentOS, Debian, Fedora, Ubuntu, and derivatives)
    • linux-musl-x64 (Alpine Linux와 같이 musl을 사용하는 간단한 배포)linux-musl-x64 (Lightweight distributions using musl like Alpine Linux)
    • linux-arm(Raspberry Pi 모델 2+의 Raspbian과 같이 ARM에서 실행되는 Linux 배포)linux-arm (Linux distributions running on ARM like Raspbian on Raspberry Pi Model 2+)
    • linux-arm64(Raspberry Pi 모델 3+의 Ubuntu Server 64비트와 같이 64비트 ARM에서 실행되는 Linux 배포)linux-arm64 (Linux distributions running on 64-bit ARM like Ubuntu Server 64-bit on Raspberry Pi Model 3+)
  • Red Hat Enterprise LinuxRed Hat Enterprise Linux
    • rhel-x64 (버전 6보다 상위 RHEL의 경우 linux-x64로 대체됨)rhel-x64 (Superseded by linux-x64 for RHEL above version 6)
    • rhel.6-x64(.NET Core 2.0 이상 버전)rhel.6-x64 (.NET Core 2.0 or later versions)
  • Tizen(.NET Core 2.0 이상 버전)Tizen (.NET Core 2.0 or later versions)
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0

자세한 내용은 .NET Core 종속성 및 요구 사항을 참조하세요.For more information, see .NET Core dependencies and requirements.

macOS RIDmacOS RIDs

macOS RID는 이전 "OSX" 브랜딩을 사용합니다.macOS RIDs use the older "OSX" branding. 자주 사용되는 값만 나열되어 있습니다.Only common values are listed. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.For the latest and complete version, see the runtime.json file on the dotnet/runtime repository.

  • 이식 가능(.NET Core 2.0 이상 버전)Portable (.NET Core 2.0 or later versions)
    • osx-x64 (최소 OS 버전: 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 이상 버전)macOS 10.12 Sierra (.NET Core 1.1 or later versions)
    • osx.10.12-x64
  • macOS 10.13 High Sierra(.NET Core 1.1 이상 버전)macOS 10.13 High Sierra (.NET Core 1.1 or later versions)
    • osx.10.13-x64
  • macOS 10.14 Mojave(.NET Core 1.1 이상 버전)macOS 10.14 Mojave (.NET Core 1.1 or later versions)
    • osx.10.14-x64

자세한 내용은 .NET Core 종속성 및 요구 사항을 참조하세요.For more information, see .NET Core dependencies and requirements.

참조See also