RuntimeIdentifier devuelve la plataforma para la que se creó el tiempo de ejecución

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.

Comportamiento nuevo

A partir de .NET 8, el valor es el RID para el que se creó el tiempo de ejecución. Esto significa que para las compilaciones portátiles del tiempo 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-x64 y, 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 importante

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 tiempo de ejecución se consideran en ejecución. En .NET 8, que corresponde a la plataforma para la que se ha compilado el host o el tiemo de ejecución, en lugar de un RID calculado en tiempo de ejecución.

RuntimeInformation.RuntimeIdentifier es un valor opaco y no está pensado para analizarse en sus partes que lo componen. Para obtener 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, use RuntimeInformation.OSDescription. Para obtener un id. específico (distribución) y la versión correspondiente en Linux, puede leer el archivo os-release.

API afectadas

Consulte también