Compatibilidad con variables de entorno vacías
Se ha agregado compatibilidad para poder establecer una variable de entorno en la cadena vacía mediante Environment.SetEnvironmentVariable(String, String). Como parte de este trabajo, se ha modificado el comportamiento de establecer las propiedades ProcessStartInfo.Environment y ProcessStartInfo.EnvironmentVariables para que sea coherente con el de Environment.SetEnvironmentVariable(String, String).
Comportamiento anterior
Antes:
- Tanto
Environment.SetEnvironmentVariable("TEST", string.Empty)
comoEnvironment.SetEnvironmentVariable("TEST", null)
eliminaron la variable de entorno. - Tanto
ProcessStartInfo.Environment["TEST"] = string.Empty
comoProcessStartInfo.Environment["TEST"] = null
establecieron la variable de entorno en el proceso secundario en un valor vacío.
Comportamiento nuevo
A partir de .NET 9:
Environment.SetEnvironmentVariable("TEST", string.Empty)
establece el valor de la variable de entorno en un valor vacío. El comportamiento deEnvironment.SetEnvironmentVariable("TEST", null)
no cambia, es decir, todavía elimina la variable de entorno.ProcessStartInfo.Environment["TEST"] = null
elimina la variable de entorno. El comportamiento deProcessStartInfo.Environment["TEST"] = string.Empty
no cambia, es decir, establece la variable de entorno en un valor vacío.
Versión introducida
.NET 9 Versión preliminar 6
Tipo de cambio importante
Este es un cambio de funcionamiento.
Motivo del cambio
Antes de este cambio, no era posible usar Environment.SetEnvironmentVariable(String, String) para establecer una variable de entorno en un valor vacío, que es un valor de variable de entorno válido en todas las plataformas compatibles.
Acción recomendada
Para eliminar una variable de entorno mediante Environment.SetEnvironmentVariable(String, String), cambie el código para pasar null
en lugar de string.Empty
como argumento de valor.
Para establecer la variable de entorno en un valor vacío mediante ProcessStartInfo.Environment o ProcessStartInfo.EnvironmentVariables, cambie el código para establecer estas propiedades en string.Empty
en lugar de en null
.