Бөлісу құралы:


RuntimeIdentifier возвращает платформу, для которой была создана среда выполнения

RuntimeInformation.RuntimeIdentifier возвращает платформу, для которой была создана среда выполнения, а не значение, вычисленное во время выполнения.

Предыдущее поведение

Это значение было идентификатором среды выполнения (RID), вычисляемого с помощью файлов ОС или API. Это обычно означало, что RID был специфичным для версии и дистрибутива. Например, при запуске приложения в Windows 11 значение было win10-x64 или в Ubuntu 20.04 может быть ubuntu.20.04-x64.

Новое поведение

Начиная с .NET 8, значение представляет собой RID, для которого была построена среда выполнения. Это означает, что для переносимых сборок среды выполнения (все предоставленные Корпорацией Майкрософт сборки) значение не зависит от версии и не зависит от дистрибутива. Например, значение на Windows 11 — win-x64, а на Ubuntu 20.04 — linux-x64. Для непереносимых сборок (исходная сборка) система сборки задает RID сборки, который может включать версию и дистрибутив, и это значение возвращается как RID.

Представленная версия

.NET 8 RC 1

Тип разрушающего изменения

Это изменение поведения.

Причина изменения

Это изменение соответствует изменению .NET 8 по разрешению ресурсов, специфичных для RID и отходу от среды выполнения, учитывающей специфику дистрибутивов. RuntimeInformation.RuntimeIdentifier — непрозрачное значение, которое должно представлять платформу, на которой узел или среда выполнения считает, что она работает. В .NET 8 соответствует платформе, для которой собран хост или среда выполнения, а не RID, вычисляемый во время выполнения.

RuntimeInformation.RuntimeIdentifier — непрозрачное значение, которое не предназначено для синтаксического анализа в его компонентах. Для версии ОС фактического компьютера, на котором запущено приложение, используйте Environment.OSVersion. Для описания используйте RuntimeInformation.OSDescription. Для определенного идентификатора (дистрибутива) и соответствующей версии на Linux можно прочитать файл os-release.

Затронутые API

См. также