RuntimeIdentifier retorna a plataforma para a qual o tempo de execução foi criado
RuntimeInformation.RuntimeIdentifier Retorna a plataforma para a qual o tempo de execução foi criado, em vez de um valor calculado em tempo de execução.
Comportamento anterior
O valor era um identificador de tempo de execução (RID) calculado por meio de arquivos do sistema operacional ou APIs. Isso geralmente significava que era um RID específico da versão e da distro. 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 tempo de execução foi criado. Isso significa que, para compilações portáteis do tempo de execução (todas as compilações fornecidas pela Microsoft), o valor não é específico da versão e não específico da distro. Por exemplo, o valor no Windows 11 é win-x64
, e no Ubuntu 20.04, é linux-x64
. Para compilações não portáteis (source-build), 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 mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
Essa alteração está alinhada com uma alteração do .NET 8 para a resolução de ativos específicos do RID e a mudança de um tempo de execução com reconhecimento de distro. RuntimeInformation.RuntimeIdentifier é um valor opaco que deve representar a plataforma na qual o host ou o tempo de execução se considera em execução. No .NET 8, isso corresponde à plataforma para a qual o host ou o tempo de execução é criado, em vez de um RID computado em tempo de execução.
Ação recomendada
RuntimeInformation.RuntimeIdentifier é um valor opaco e não se destina a ser analisado nas suas partes componentes. Para a versão do sistema operacional da máquina real em que um aplicativo está sendo executado, use Environment.OSVersion. Para obter uma descrição, use RuntimeInformation.OSDescription. Para um ID específico (distro) e versão correspondente no Linux, você pode ler o arquivo os-release .