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 можно прочитать файл ос-выпуска .

Затронутые API

См. также