Compartir a través de


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) como Environment.SetEnvironmentVariable("TEST", null) eliminaron la variable de entorno.
  • Tanto ProcessStartInfo.Environment["TEST"] = string.Empty como ProcessStartInfo.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 de Environment.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.

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.

API afectadas