RuntimeIdentifier retorna a plataforma para a qual o runtime foi criado

RuntimeInformation.RuntimeIdentifier retorna a plataforma para a qual o runtime foi criado, ao invés de um valor computado no tempo de execução.

Comportamento anterior

O valor era um identificador de runtime (RID) computado por meio de arquivos SO ou APIs. Isso geralmente significava que era um RID específico da versão e da distribuição. Por exemplo, ao executar um aplicativo no Windows 11, o valor era win10-x64 ou, no Ubuntu 20.04, poderia ser ubuntu.20.04-x64.

Novo comportamento

A partir do .NET 8, o valor é o RID para o qual o runtime foi criado. Isso significa que, para compilações portáteis do runtime (todas as compilações fornecidas pela Microsoft), o valor não é específico da versão e não é específico da distribuição. Por exemplo, o valor no Windows 11 é win-x64, e no Ubuntu 20.04, é linux-x64. Para compilações não portáteis (build de origem), a compilação define um RID de compilação que pode ter uma versão e uma distribuição, e esse valor é o RID retornado.

Versão introduzida

.NET 8 RC 1

Tipo de alteração interruptiva

Esta é uma alteração comportamental.

Motivo da alteração

Essa alteração está alinhada com uma alteração do .NET 8 para resolução de ativos específicos de RID e com o afastamento de um runtime com reconhecimento de distribuição. RuntimeInformation.RuntimeIdentifier é um valor opaco que deve representar a plataforma na qual o host ou runtime se considera em execução. No .NET 8, isso corresponde à plataforma para a qual o host ou o runtime foi criado, ao invés de um RID computado em tempo de execução.

RuntimeInformation.RuntimeIdentifier é um valor opaco e não se destina a ser analisado em suas partes componentes. Para a versão do SO do computador real em que um aplicativo está sendo executado, utilize Environment.OSVersion. Para uma descrição, utilize RuntimeInformation.OSDescription. Para obter uma ID (distribuição) específica e a versão correspondente no Linux, você pode fazer a leitura do arquivo versão do so.

APIs afetadas

Confira também