Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
RuntimeInformation.RuntimeIdentifier devuelve la plataforma para la que se creó el tiempo de ejecución, en lugar de un valor calculado en tiempo de ejecución.
Comportamiento anterior
El valor era un identificador en tiempo de ejecución (RID) calculado a través de archivos o API del sistema operativo. Esto generalmente significaba que era un RID específico de la versión y específico de la distribución. Por ejemplo, al ejecutar una aplicación en Windows 11, el valor era win10-x64 o, en Ubuntu 20.04, podría ser ubuntu.20.04-x64.
Nuevo comportamiento
A partir de .NET 8, el valor es el RID para el que se creó el entorno de ejecución. Esto significa que para las compilaciones portátiles del entorno de ejecución (todas las compilaciones proporcionadas por Microsoft), el valor no es específico de la versión y no es específico de la distribución. Por ejemplo, el valor de Windows 11 es win-x64y en Ubuntu 20.04, es linux-x64. En el caso de las compilaciones no portátiles (source-build), la compilación establece un RID de compilación que puede tener una versión y una distribución, y ese valor es el RID que se devuelve.
Versión introducida
.NET 8 RC 1
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
Este cambio está en línea con un cambio de .NET 8 a una resolución de recursos específica de RID y el traslado de un tiempo de ejecución compatible con distribuciones. RuntimeInformation.RuntimeIdentifier es un valor opaco que debe representar la plataforma en la que el host o el entorno de ejecución se consideran en ejecución. En .NET 8, que corresponde a la plataforma para la que se compila el host o el entorno de ejecución, en lugar de un RID calculado en tiempo de ejecución.
Acción recomendada
RuntimeInformation.RuntimeIdentifier es un valor opaco y no está pensado para descomponerse en sus partes componentes. Para la versión del sistema operativo de la máquina real en la que se ejecuta una aplicación, use Environment.OSVersion. Para obtener una descripción, emplee RuntimeInformation.OSDescription. Para un identificador específico (distribución) y la versión correspondiente en Linux, puede leer el archivo os-release .