.NET RID Kataloğu

RID, Çalışma Zamanı Tanımlayıcısı anlamına geldi. RID değerleri, uygulamanın çalıştırıldıkları hedef platformları tanımlamak için kullanılır. .NET paketleri tarafından, farklı paketlerde platforma özgü varlıkları temsil NuGet kullanılır. Aşağıdaki değerler, RI'lere örnek olarak verilmiştir: linux-x64 , ubuntu.14.04-x64 , veya win7-x64 osx.10.12-x64 . RID, yerel bağımlılıklara sahip paketler için paketin hangi platformlarda geri yüklenebilir olduğunu ifade eder.

Proje dosyanız öğesinde tek bir RID <RuntimeIdentifier> ayar olabilir. Proje dosyasının öğesinde noktalı virgülle ayrılmış liste olarak birden çok RID <RuntimeIdentifiers> tanımlanabilir. Aşağıdaki --runtime .NET CLIkomutlarıyla seçeneği aracılığıyla da kullanılırlar:

Somut işletim sistemlerini temsil eden RI'ler genellikle şu desene uyar: [os].[version]-[architecture]-[additional qualifiers] Burada:

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

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

    • Sürümün pazarlama sürümleri olmaması gerekir çünkü bunlar genellikle farklı platform API'si yüzey alanına sahip işletim sisteminin birden çok ayrı sürümünü temsil eder.
  • [architecture] , işlemci mimarisidir. Örneğin: x86 , x64 arm , veya arm64 .

  • [additional qualifiers] farklı platformları birbirinden daha fazla ayırt etmek. Örneğin: aot.

RID grafiği

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

Paketleri NuGet, belirtilen çalışma zamanı için tam eşleşme bulmaya çalışır. Tam eşleşme bulunamasa NuGet RID grafiğine göre en yakın uyumlu sistemi bulana kadar grafı gösterir.

Aşağıdaki örnek RID'nin gerçek osx.10.12-x64 girdisidir:

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

Yukarıdaki RID, içeri osx.10.12-x64 aktaran osx.10.11-x64 belirtir. Bu nedenle NuGet geri yükleyene kadar pakette tam eşleşme osx.10.12-x64 bulmaya çalışır. Belirli NuGet çalışma zamanlarını bulamazsa, çalışma zamanlarını belirten paketleri osx.10.11-x64 geri yükleyebilir, örneğin.

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

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

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

RID'lerle çalışırken dikkat edilmesi gereken bazı noktalar vardır:

  • Bileşen parçalarını almak için RID'leri ayrıştırmayı denemeyin.
  • RID'leri program aracılığıyla derlemeyin.
  • Platform için zaten tanımlanmış olan RID'leri kullanın.
  • RID'lere özgü olması gerekir, bu nedenle gerçek RID değerinden herhangi bir şey varsayma.

RI'leri kullanma

RI'leri kullanmak için hangi RI'ler olduğunu bilmek gerekir. Platforma düzenli olarak yeni değerler eklenir. En son ve tam sürüm için depoda runtime.json dosyasına dotnet/runtime bakın.

Belirli bir sürüme veya işletim sistemi dağıtımına bağlı olmayan RI'ler, özellikle dağıtım RI'lerinin çoğu dağıtıma özgü olmayan RI'lerle eşlenmiş olduğu için birden çok Linux dağıtımıyla uğraşan tercih edilen tercihtir.

Aşağıdaki listede, her işletim sistemi için kullanılan en yaygın RID'lerden küçük bir alt kümesi yer almaktadır.

Windows RID'ler

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

  • Windows özgü değil
    • 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 10 / Windows Server 2016
    • win10-x64
    • win10-x86
    • win10-arm
    • win10-arm64

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

Linux RI'leri

Yalnızca ortak değerler listelenir. En son ve tam sürüm için depoda runtime.json dosyasına dotnet/runtime bakın. Aşağıda listelenmiyor bir dağıtımı çalıştıran cihazlar, dağıtıma özgü olmayan RI'lerden biri ile birlikte kullanılabilir. Örneğin, listelenmiyor bir Linux dağıtımı çalıştıran Raspberry Pi cihazları ile hedeflenmiş linux-arm olabilir.

  • Dağıtıma özgü değil Linux
    • linux-x64 (CentOS, Debian, Fedora, Ubuntu ve türevleri gibi masaüstü dağıtımlarının çoğu)
    • linux-musl-x64 (Alpine Linux gibi musl kullanan basit dağıtımlar)
    • linux-arm (Raspberry Pi Model 2+ üzerinde Raspbian gibi ARM üzerinde çalışan Linux dağıtımları)
    • linux-arm64 (Raspberry Pi Model 3+ üzerinde Ubuntu Server 64 bit gibi 64 bit ARM üzerinde çalışan Linux dağıtımları)
  • Red Hat Enterprise Linux
    • rhel-x64 (sürüm linux-x64 6'nın üzerindeki RHEL için tarafından yenisi alındı)
    • rhel.6-x64
  • Tizen
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0

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

macOS RID'leri

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

  • macOS, sürüme özgü değil
    • 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.

Ayrıca bkz.