.NET Core Runtime IDentifier (RID) catalog

本文详细介绍了运行时标识符(RID)的概念及其在.NET Core平台中的应用。RID用于标识应用程序或组件的目标操作系统,如win7-x64等。文章还解释了如何使用RID,并列举了Windows、Linux及macOS系统的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载至:https://docs.microsoft.com/zh-cn/dotnet/articles/core/rid-catalog

What are RIDs?

RID is short for Runtime IDentifier. RIDs are used to identify target operating systems where an application or asset (that is, assembly) will run. They look like this: "ubuntu.14.04-x64", "win7-x64", "osx.10.11-x64". For the packages with native dependencies, it will designate on which platforms the package can be restored.

It is important to note that RIDs are really opaque strings. This means that they have to match exactly for operations using them to work. As an example, let us consider the case of Elementary OS, which is a straightforward clone of Ubuntu 14.04. Although .NET Core and CLI work on top of that version of Ubuntu, if you try to use them on Elementary OS without any modifications, the restore operation for any package will fail. This is because we currently (May 3rd, 2016) don't have a RID that designates Elementary OS as a platform.

RIDs that represent concrete operating systems should be of the form: [os].[version]-[arch]where:

  • [os] is the operating system moniker, for example, win
  • [version] is the operating system version in the form of a dot (.) separated version number, for example, 10.1511, accurate enough to reasonably enable assets to target operating system platform APIs represented by that version.[arch] is the processor architecture, for example, x86x64armarm64, etc.
    • This shouldn't be marketing versions, as they often represent multiple discrete versions of the operating system with varying platform API surface area, for example, win.10-x64

The RID graph is defined in a package called Microsoft.NETCore.Platforms in a file calledruntime.json which you can see on the CoreFX repo. If you use this file, you will notice that some of the RIDs have an "#import" statement in them. These statements are compatibility statements. That means that a RID that has an imported RID in it, can be a target for restoring packages for that RID. Slightly confusing, but let's look at an example. Let's take a look at macOS:

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

The above RID specifies that osx.10.11-x64 imports osx.10.10-x64. This means that when restoring packages, NuGet will be able to restore packages that specify that they need osx.10.10-x64 on osx.10.11-x64.

A slightly bigger example RID graph:

  • win.10.1511-x64
    • win.10.1511
    • win.10-x64
      • win.10
      • win.6.3.9200-x64
        • win.6.3-x64
        • win.6.3
        • win.6.3.9200
        • win.6.2.9200-x64
          • win.6.2.9200
          • win.6.1.7600-x64
            • win.6.1.7600
            • win.6.1-x64
              • win.6.1
                • win
                  • any

All RIDs eventually map back to the root any RID.

Although they look easy enough to use, there are some special things about RIDs that you have to keep in mind when working with them:

  • They are opaque strings and should be treated as black boxesYou need to use the RIDs that are already defined for the platform and this document shows that
    • You should not construct RIDs programmatically
  • The RIDs do need to be specific so don't assume anything from the actual RID value; please consult this document to determine which RID(s) you need for a given platform

Using RIDs

In order to use RIDs, you have to know which RIDs there are. This document lists out the currently supported RIDs in .NET Core. Please be aware that this document is getting updated regularly as new RIDs are added to the platform. If you wish to check if new ones are added, please check back here.

We are working towards getting this information into a more interactive form. When that happens, this page will be updated to point to that tool and/or its usage documentation.

Windows RIDs

  • Windows 7
    • win7-x64
    • win7-x86
  • Windows 8
    • win8-x64
    • win8-x86
  • Windows 10
    • win10-x64
    • win10-x86

Linux RIDs

  • Red Hat Enterprise Linux
    • rhel.7.0-x64
    • rhel.7.1-x64
    • rhel.7.2-x64
  • Ubuntu
    • ubuntu.14.04-x64
    • ubuntu.14.10-x64
    • ubuntu.15.04-x64
  • CentOS
    • centos.7-x64
    • centos.7.1-x64
  • Debian
    • debian.8-x64
    • debian.8.2-x64
  • Currently supported Ubuntu derivatives
    • linuxmint.17-x64
    • linuxmint.17.1-x64
    • linuxmint.17.2-x64
    • linuxmint.17.3-x64

OS X RIDs

  • osx.10.10-x64
  • osx.10.11-x64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值