Suporte para variáveis de ambiente vazias
Foi adicionado suporte para poder definir uma variável de ambiente para a cadeia de caracteres vazia usando Environment.SetEnvironmentVariable(String, String). Como parte desse trabalho, o comportamento de definir as propriedades ProcessStartInfo.Environment e ProcessStartInfo.EnvironmentVariables foi alterado para ser consistente com o de Environment.SetEnvironmentVariable(String, String).
Comportamento anterior
Anteriormente:
- Tanto
Environment.SetEnvironmentVariable("TEST", string.Empty)
quantoEnvironment.SetEnvironmentVariable("TEST", null)
excluiu a variável de ambiente. - Tanto
ProcessStartInfo.Environment["TEST"] = string.Empty
quantoProcessStartInfo.Environment["TEST"] = null
definiu a variável de ambiente no processo filho como 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. O comportamentoEnvironment.SetEnvironmentVariable("TEST", null)
não é alterado, ou seja, ele ainda exclui a variável de ambiente.ProcessStartInfo.Environment["TEST"] = null
exclui a variável de ambiente. O comportamentoProcessStartInfo.Environment["TEST"] = string.Empty
é inalterado, ou seja, ainda define a variável de ambiente como um valor vazio.
Versão introduzida
.NET 9 Preview 6
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da 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 com suporte.
Ação recomendada
Para excluir uma variável de ambiente usando Environment.SetEnvironmentVariable(String, String), altere seu código para passar null
em vez de string.Empty
como o argumento de valor.
Para definir a variável de ambiente como um valor vazio usando ProcessStartInfo.Environment ou ProcessStartInfo.EnvironmentVariables, altere o código para definir essas propriedades como string.Empty
em vez de null
.