Прочитать на английском

Поделиться через


Поддержка пустых переменных среды

Добавлена поддержка, чтобы иметь возможность задать переменную среды в пустую строку с помощью Environment.SetEnvironmentVariable(String, String). В рамках этой работы поведение настройки ProcessStartInfo.Environment и ProcessStartInfo.EnvironmentVariables свойств было изменено в соответствии с этим Environment.SetEnvironmentVariable(String, String).

Прежнее поведение

Предварительно:

  • Оба Environment.SetEnvironmentVariable("TEST", string.Empty) и Environment.SetEnvironmentVariable("TEST", null) удалены переменная среды.
  • Обе ProcessStartInfo.Environment["TEST"] = string.Empty ProcessStartInfo.Environment["TEST"] = null переменные среды в дочернем процессе задают пустое значение.

Новое поведение

Начиная с .NET 9:

  • Environment.SetEnvironmentVariable("TEST", string.Empty) задает значение переменной среды пустым значением. Environment.SetEnvironmentVariable("TEST", null) поведение остается неизменным, то есть оно по-прежнему удаляет переменную среды.
  • ProcessStartInfo.Environment["TEST"] = null удаляет переменную среды. ProcessStartInfo.Environment["TEST"] = string.Empty поведение без изменений, то есть оно по-прежнему задает переменную среды пустым значением.

Представленные версии

.NET 9( предварительная версия 6)

Тип критического изменения

Это изменение поведения.

Причина изменения

Перед этим изменением невозможно было использовать Environment.SetEnvironmentVariable(String, String) для задания переменной среды пустое значение, которое является допустимым значением переменной среды на всех поддерживаемых платформах.

Чтобы удалить переменную среды с помощью Environment.SetEnvironmentVariable(String, String), измените код на передачу null вместо string.Empty аргумента значения.

Чтобы задать переменную среды пустым значением, или ProcessStartInfo.EnvironmentVariablesProcessStartInfo.Environment измените код, чтобы задать эти свойства вместо string.Empty nullзначения .

Затронутые API