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