.NET Core Runtime IDentifier (RID) catalog

转载至: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
时间: 2024-12-25 19:09:11

.NET Core Runtime IDentifier (RID) catalog的相关文章

【转】RCP中org.eclipse.core.runtime.CoreException

org.eclipse.core.runtime.CoreException: Plug-in TRAIN was unable to load class train.Application. 利用UP将其移到第一位 再次运行程序,OK. 网络力量是无穷的,这是一个庞大的知识库,有很多营养供我们汲取,谢谢每一个无私分享学习经历.学习成果的人们! 注意:RCP在运行时要使用自己的类包,要在classpath中配置添加,common-logging.jar,spring.jar. 当在RCP中使用

Eclipse启动报错:An internal error occurred during: "Updating indexes".org/eclipse/core/runtime/internal/adaptor/BasicLocation解决方法

Eclipse一直用的好好的,突然这两天每次启动都会出现如下的错误:An internal error occurred during: "Updating indexes".org/eclipse/core/runtime/internal/adaptor/BasicLocation,刚开始没有在意,以为是机器的内存不够导致,但后来发现不是怎么回事,刚开机,打开Eclipse也报这个错误.找到Eclipse的日志文件,workspace/.metadata/.log,查询"

centos 部署 .net core runtime 环境

1.添加 yum 源 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\n

.NET Core Runtime ARM32 builds now available

原文地址:传送门 .NET Core Runtime ARM32 builds now available The .NET Core team is now producing ARM32 builds for .NET Core Runtime 2.0+, for both Linux and Windows. These builds are great for using on Raspberry Pi. The builds are not yet supported by Micro

Install .NET Core Runtime on Linux Ubuntu 16.04 x64

原文链接https://www.microsoft.com/net/download/linux-package-manager/ubuntu16-04/runtime-current nstall .NET Core Runtime on Linux Ubuntu 16.04 x64 Not sure where to start? See Get started with .NET in 10 minutes. Linux Distribution                  RHEL

CentOS ASP.NET Core Runtime Jexus跨平台布署

.net core 开源和跨平台,能布署到当前主流的Windows,Linux,macOS 系统上.本篇我们将在 Linux 系统上使用 ASP.NET Core Runtime 和 Jexus 布署运行 ASP.NET Core 网站. Linux 系统选的是 CentOS 7.4 64位 .NET Core 安装的是 ASP.NET Core Runtime 2.1(当时最新),其实也可以安装.NET Core SDK,但没有必需,运行环境 Runtime 就OK了. Jexus 用的是 5

Spark Core Runtime分析: DAGScheduler, TaskScheduler, SchedulerBackend

Spark Runtime里的主要层次分析,梳理Runtime组件和执行流程, DAGScheduler Job=多个stage,Stage=多个同种task, Task分为ShuffleMapTask和ResultTask,Dependency分为ShuffleDependency和NarrowDependency 面向stage的切分,切分依据为宽依赖 维护waiting jobs和active jobs,维护waiting stages.active stages和failed stage

【转】.NET Core基于. csproj 配置文件发布项目

一.前言 .NET工具链在最新的Preview3版本中,引入了新的MSBuild项目系统,项目文件又回归了.csproj的XML文件来管理,项目文件.包引用.程序集引用..NET Core工具集.发布内容定义等内容.本文主要将主要讨论,如何在新的项目系统中(.csproj)发布可执行文件.我们都知道在之前的版本中,项目文件是通过project.json文件来管理项目和包引用的,那么通过删除 dependencies->Microsoft.NETCore.App-> "type&quo

张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用

今天是大年初二,都去走亲戚了吧,享受一下这难得的能和亲友相聚的时光.而我就不一样了,今天一回到家就又开始瞎折腾了,哈哈哈. 问题背景 最近花了点时间用 ASP.NET Core 2 写了个个人博客,中间出了好多问题,过程弯弯曲曲的,但好歹最后还是完成部署在阿里云上了.这几天闲的没事看 .NET Core CLI,发现运行时标识符(Runtime IDentifier)居然有 win10-arm,这使我突然萌生了想把我的博客部署在 Raspberry Pi 上.(这就是纯属瞎折腾,部署在 Wind