.NET RID 카탈로그
RID는 Runtime Identifier(런타임 식별자) 의 약어입니다. RID 값은 애플리케이션을 실행하는 대상 플랫폼을 식별하는 데 사용됩니다.
NuGet 패키지에서 .NET 패키지의 플랫폼 관련 자산을 나타내는 데 사용됩니다. RID 값의 예로 linux-x64, ubuntu.14.04-x64, win7-x64, osx.10.12-x64 등을 들 수 있습니다.
기본 종속성이 있는 패키지의 경우 RID는 패키지를 복원할 수 있는 플랫폼을 지정합니다.
단일 RID는 프로젝트 파일의 <RuntimeIdentifier> 요소에 설정할 수 있습니다. 여러 RID는 프로젝트 파일의 <RuntimeIdentifiers> 요소에서 세미콜론으로 구분된 목록으로 정의할 수 있습니다. --runtime 옵션을 통해 다음과 같은 .NET CLI 명령에서도 사용됩니다.
구체적인 운영 체제를 나타내는 RID는 일반적으로 [os].[version]-[architecture]-[additional qualifiers]의 패턴을 따릅니다. 각각은 다음과 같습니다.
[os]- 운영 체제/플랫폼 모니커입니다. 예:ubuntu.[version]- 점으로 구분된(.) 버전 번호 형식의 운영 체제 버전입니다. 예:15.10.마케팅 버전은 종종 다양한 플랫폼 API 노출 영역이 있는 운영 체제의 여러 개별 버전을 나타내므로 버전은 마케팅 버전이 되어서는 안 됩니다.
[architecture]- 프로세서 아키텍처입니다. 예를 들면x86,x64,arm,arm64등입니다.[additional qualifiers]- 다른 플랫폼을 추가로 구분합니다. 예를 들어aot을 참조하십시오.
RID 그래프
RID 그래프 또는 런타임 Fallback 그래프는 서로 호환되는 RID 목록입니다. RID는 Microsoft.NETCore.Platforms 패키지에 정의되어 있습니다. 지원되는 RID 및 RID 그래프 목록은 dotnet/runtime 리포지토리에 있는 runtime.json 파일에서 확인할 수 있습니다. 이 파일에서 기본 RID를 제외하고 모든 RID에 "#import" 문이 포함되어 있음을 알 수 있습니다. 이러한 문은 호환되는 RID를 나타냅니다.
NuGet에서 패키지를 복원할 때 지정된 런타임에 대한 정확한 일치를 찾으려고 합니다. 정확한 일치를 찾을 수 없는 경우 NuGet은 RID 그래프에 따라 가장 가까운 호환 시스템을 찾을 때까지 그래프를 다시 검색합니다.
다음 예제는 osx.10.12-x64 RID의 실제 항목입니다.
"osx.10.12-x64": {
"#import": [ "osx.10.12", "osx.10.11-x64" ]
}
위의 RID는 osx.10.12-x64가 osx.10.11-x64를 가져오도록 지정합니다. 따라서 NuGet이 패키지를 복원할 때 패키지에서 정확히 일치하는 osx.10.12-x64 항목을 찾으려고 시도합니다. NuGet에서 특정 런타임을 찾을 수 없는 경우 런타임을 지정 osx.10.11-x64 하는 패키지를 복원할 수 있습니다.
다음 예제에서는 runtime.json 파일에도 정의된 약간 더 큰 RID 그래프를 보여줍니다.
win7-x64 win7-x86
| \ / |
| win7 |
| | |
win-x64 | win-x86
\ | /
win
|
any
모든 RID는 결국 루트 any RID에 다시 매핑됩니다.
RID를 사용할 때는 RID에 대한 다음과 같은 몇 가지 고려 사항을 알고 있어야 합니다.
구성 요소 파트를 검색하기 위해 RID를 구문 분석하지 않습니다.
플랫폼에 대해 이미 정의된 RID를 사용합니다.
RID는 구체적이어야 하므로 실제 RID 값에서 어느 것도 가정하지 마세요.
반드시 필요한 경우가 아니면 프로그래밍 방식으로 RID를 빌드하지 마세요.
일부 앱은 프로그래밍 방식으로 RID를 컴퓨팅해야 합니다. 그렇다면 계산된 RID는 대/소문자를 포함하여 카탈로그와 정확히 일치해야 합니다. 대/소문자가 다른 RID는 OS가 대/소문자를 구분할 때(예: Linux) 문제가 발생합니다. 출력 경로와 같은 항목을 생성할 때 값이 자주 사용되기 때문입니다. 예를 들어 솔루션 구성 관리자 및 프로젝트 속성의 정보를 사용하는 Visual Studio의 사용자 지정 게시 마법사를 생각해 보세요. 솔루션 구성이 잘못된 값(예
ARM64arm64: 대신)을 전달하는 경우와 같이win-ARM64잘못된 RID가 발생할 수 있습니다.
RID 사용
RID를 사용할 수 있으려면 어떤 RID가 있는지 알아야 합니다. 새 값이 플랫폼에 정기적으로 추가됩니다.
완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.
특정 버전 또는 OS 배포에 연결되지 않은 RID가 기본적으로 선택되며 특히 여러 Linux 배포판을 다룰 때 그러한데, 이는 대부분의 배포 RID는 배포와 관련이 없는 RID에 매핑되기 때문입니다.
다음 목록에서는 각 OS에 사용되는 일반적인 RID의 몇 가지 예를 보여줍니다.
Windows RID
자주 사용되는 값만 나열되어 있습니다. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.
- Windows(버전과 관련 없음)
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
RID가 없습니다win11. Windows 11 RID를 사용합니다win10. 자세한 내용은 .NET 종속성 및 요구 사항을 참조하세요.
Linux RID
자주 사용되는 값만 나열되어 있습니다. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요. 아래에 나열되지 않은 배포를 실행하는 디바이스의 경우, 배포와 관련이 없는 RID 중 하나와 작동할 수 있습니다. 예를 들어, 여기에 나열되지 않은 Linux 배포를 실행하는 Raspberry Pi 디바이스는 linux-arm을 사용하여 대상으로 지정할 수 있습니다.
- Linux(배포와 관련 없음)
linux-x64(CentOS, Debian, Fedora, Ubuntu 및 파생 버전을 비롯한 대부분의 데스크톱 배포)linux-musl-x64(Alpine Linux와 같이 musl을 사용하는 간단한 배포)linux-arm(Raspberry Pi 모델 2 이상에서 Raspbian과 같은 Arm에서 실행되는 Linux 배포판)linux-arm64(Raspberry Pi 모델 3 이상에서 Ubuntu Server 64비트처럼 64비트 Arm에서 실행되는 Linux 배포판)
- Red Hat Enterprise Linux
rhel-x64(버전 6보다 상위 RHEL의 경우linux-x64로 대체됨)rhel.6-x64
- Tizen
tizentizen.4.0.0tizen.5.0.0
자세한 내용은 .NET 종속성 및 요구 사항을 참조하세요.
macOS RID
macOS RID는 이전 "OSX" 브랜딩을 사용합니다. 자주 사용되는 값만 나열되어 있습니다. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.
- macOS(버전과 관련 없음)
osx-x64(최소 OS 버전: 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
자세한 내용은 .NET 종속성 및 요구 사항을 참조하세요.
iOS RID
자주 사용되는 값만 나열되어 있습니다. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.
- iOS( 버전별이 아님)
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
Android RID
자주 사용되는 값만 나열되어 있습니다. 완전한 최신 버전을 보려면 dotnet/runtime 리포지토리에서 runtime.json 파일을 확인하세요.
- 버전별이 아닌 Android
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