Partilhar via


Suporte para variáveis de ambiente vazio

O suporte foi adicionado para poder definir uma variável de ambiente para a cadeia de caracteres vazia usando Environment.SetEnvironmentVariable(String, String). Como parte deste trabalho, o comportamento de definir as propriedades e ProcessStartInfo.EnvironmentVariables foi alterado para ser consistente com o ProcessStartInfo.Environment de Environment.SetEnvironmentVariable(String, String).

Comportamento anterior

Anteriormente:

  • Ambos Environment.SetEnvironmentVariable("TEST", string.Empty) e Environment.SetEnvironmentVariable("TEST", null) excluiu a variável de ambiente.
  • Ambos ProcessStartInfo.Environment["TEST"] = string.Empty e ProcessStartInfo.Environment["TEST"] = null definir a variável de ambiente no processo filho para um valor vazio.

Novo comportamento

A partir do .NET 9:

  • Environment.SetEnvironmentVariable("TEST", string.Empty) Define o valor da variável de ambiente como um valor vazio. Environment.SetEnvironmentVariable("TEST", null) O comportamento permanece inalterado, ou seja, ainda exclui a variável de ambiente.
  • ProcessStartInfo.Environment["TEST"] = null Exclui a variável de ambiente. ProcessStartInfo.Environment["TEST"] = string.Empty O comportamento permanece inalterado, ou seja, ainda define a variável de ambiente como um valor vazio.

Versão introduzida

.NET 9 Visualização 6

Tipo de mudança de rutura

Esta mudança é uma mudança comportamental.

Razão para a alteração

Antes dessa alteração, não era possível usar Environment.SetEnvironmentVariable(String, String) para definir uma variável de ambiente como um valor vazio, que é um valor de variável de ambiente válido em todas as plataformas suportadas.

Para excluir uma variável de ambiente usando Environment.SetEnvironmentVariable(String, String), altere seu código para passar null em vez de como o argumento value string.Empty .

Para definir a variável de ambiente como um valor vazio usando ProcessStartInfo.Environment ou ProcessStartInfo.EnvironmentVariables, altere seu código para definir essas propriedades como em string.Empty vez de null.

APIs afetadas