.NET RID Kataloğu

RID, Çalışma Zamanı Tanımlayıcısı'nın kısaltmasıdır. RID değerleri, uygulamanın çalıştığı hedef platformları tanımlamak için kullanılır. .NET paketleri tarafından NuGet paketlerindeki platforma özgü varlıkları temsil etmek için kullanılır. Aşağıdaki değerler, RID örnekleridir: linux-x64, ubuntu.14.04-x64, win7-x64veya osx.10.12-x64. Yerel bağımlılıkları olan paketler için RID, paketin hangi platformlarda geri yüklenebileceğini belirtir.

Proje dosyanızın öğesinde <RuntimeIdentifier> tek bir RID ayarlanabilir. Birden çok RID, proje dosyasının <RuntimeIdentifiers> öğesinde noktalı virgülle ayrılmış liste olarak tanımlanabilir. Ayrıca aşağıdaki .NET CLI komutlarıyla seçeneği aracılığıyla --runtime da kullanılır:

Somut işletim sistemlerini temsil eden RID'ler genellikle şu deseni izler: [os].[version]-[architecture]-[additional qualifiers] burada:

  • [os] işletim/platform sistemi bilinen adıdır. Örneğin, ubuntu.

  • [version] , noktayla ayrılmış (.) sürüm numarası biçimindeki işletim sistemi sürümüdür. Örneğin, 15.10.

    Pazarlama sürümleri genellikle farklı platform API'leri yüzey alanına sahip işletim sisteminin birden çok ayrı sürümünü temsil etmediğinden, sürüm bir pazarlama sürümü olmamalıdır .

  • [architecture] işlemci mimarisidir. Örneğin: x86, x64, armveya arm64.

  • [additional qualifiers] farklı platformları daha da ayırt etme. Örneğin: aot.

RID grafiği

RID grafiği veya çalışma zamanı geri dönüş grafiği, birbiriyle uyumlu RID'lerin bir listesidir. RID'ler Microsoft.NETCore.Platforms paketinde tanımlanır. Desteklenen RID'lerin listesini ve RID grafiğini depoda dotnet/runtime bulunan runtime.json dosyasında görebilirsiniz. Bu dosyada, temel olan dışındaki tüm RID'lerin bir "#import" deyimi içerdiğini görebilirsiniz. Bu deyimler uyumlu RID'leri gösterir.

NuGet paketleri geri yüklediğinde, belirtilen çalışma zamanı için tam bir eşleşme bulmaya çalışır. Tam eşleşme bulunamazsa NuGet, RID grafiğine göre en yakın uyumlu sistemi bulana kadar grafta geri döner.

Aşağıdaki örnek RID için osx.10.12-x64 gerçek giriştir:

"osx.10.12-x64": {
    "#import": [ "osx.10.12", "osx.10.11-x64" ]
}

Yukarıdaki RID, öğesini içeri aktardığını osx.10.12-x64osx.10.11-x64belirtir. Bu nedenle NuGet paketleri geri yüklediğinde paketin tam eşleşmesini osx.10.12-x64 bulmaya çalışır. NuGet belirli bir çalışma zamanını bulamazsa, örneğin çalışma zamanlarını belirten osx.10.11-x64 paketleri geri yükleyebilir.

Aşağıdaki örnekte runtime.json dosyasında da tanımlanan biraz daha büyük bir RID grafiği gösterilmektedir:

    win7-x64    win7-x86
       |   \   /    |
       |   win7     |
       |     |      |
    win-x64  |  win-x86
          \  |  /
            win
             |
            any

Tüm RID'ler sonunda kök any RID'ye geri eşler.

RID'lerle ilgili olarak, bunlarla çalışırken göz önünde bulundurmanız gereken bazı noktalar vardır:

  • Bileşen parçalarını almak için RID'leri ayrıştırmaya çalışmayın.

  • Platform için önceden tanımlanmış RID'leri kullanın.

  • RID'lerin belirli olması gerekir, bu nedenle gerçek RID değerinden hiçbir şey varsaymayın.

  • Kesinlikle gerekli olmadıkça program aracılığıyla RID oluşturmayın.

    Bazı uygulamaların RID'leri program aracılığıyla hesaplaması gerekir. Öyleyse, hesaplanan RID'lerin büyük/küçük harf de dahil olmak üzere katalogla tam olarak eşleşmesi gerekir. Farklı büyük/küçük harfe sahip RID'ler, işletim sistemi büyük/küçük harfe duyarlı olduğunda (örneğin Linux) sorunlara neden olabilir çünkü değer genellikle çıkış yolları gibi şeyler oluşturulurken kullanılır. Örneğin, Visual Studio'da çözüm yapılandırma yöneticisinden ve proje özelliklerinden gelen bilgilere dayalı özel bir yayımlama sihirbazı düşünün. Çözüm yapılandırması yerine geçersiz bir değer ARM64arm64geçirirse, gibi win-ARM64geçersiz bir RID ile sonuçlanabilir.

RID'leri kullanma

RID'leri kullanabilmek için hangi RID'lerin mevcut olduğunu bilmeniz gerekir. Platforma düzenli olarak yeni değerler eklenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın.

Belirli bir sürüme veya işletim sistemi dağıtımına bağlı olmayan RID'ler, özellikle çoğu dağıtım RID'si dağıtıma özgü olmayan RID'lerle eşlendiğinden, birden çok Linux dağıtımıyla ilgilenirken tercih edilen seçenektir.

Aşağıdaki listede, her işletim sistemi için kullanılan en yaygın RID'lerin küçük bir alt kümesi gösterilmektedir.

Windows RID'leri

Yalnızca ortak değerler listelenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın.

  • Sürüme özgü değil Windows
    • 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

RID yokwin11; Windows 11 için RID kullanınwin10. Daha fazla bilgi için bkz. .NET bağımlılıkları ve gereksinimleri.

Linux RID'leri

Yalnızca ortak değerler listelenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın. Aşağıda listelenmeyen bir dağıtımı çalıştıran cihazlar, dağıtıma özgü olmayan RID'lerden biriyle çalışabilir. Örneğin, listelenmeyen bir Linux dağıtımı çalıştıran Raspberry Pi cihazları ile linux-armhedeflenebilir.

  • Linux, dağıtıma özgü değil
    • linux-x64 (CentOS, Debian, Fedora, Ubuntu ve türevleri gibi çoğu masaüstü dağıtımı)
    • linux-musl-x64 (Alpine Linux gibi musl kullanan basit dağıtımlar )
    • linux-arm (Raspberry Pi Model 2+'da Raspbian gibi Arm üzerinde çalışan Linux dağıtımları)
    • linux-arm64 (Raspberry Pi Model 3+'da Ubuntu Server 64 bit gibi 64 bit Arm üzerinde çalışan Linux dağıtımları)
  • Red Hat Enterprise Linux
    • rhel-x64 (Sürüm 6'nın linux-x64 üzerindeki RHEL yerine geçen)
    • rhel.6-x64
  • Tizen
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0
    • tizen.5.5.0
    • tizen.6.0.0
    • tizen.6.5.0
    • tizen.7.0.0

Daha fazla bilgi için bkz. .NET bağımlılıkları ve gereksinimleri.

macOS RID'leri

macOS RID'ler eski "OSX" markasını kullanır. Yalnızca ortak değerler listelenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın.

  • sürüme özgü değil macOS
    • osx-x64 (En düşük işletim sistemi sürümü macOS 10.12 Sierra'dır)
  • 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

Daha fazla bilgi için bkz. .NET bağımlılıkları ve gereksinimleri.

iOS RID'leri

Yalnızca ortak değerler listelenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın.

  • iOS, sürüme özgü değil
    • 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'leri

Yalnızca ortak değerler listelenir. En son ve tam sürüm için depodaki dotnet/runtimeruntime.json dosyasına bakın.

  • Sürüme özgü değil 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

Ayrıca bkz.