다음을 통해 공유


빈 환경 변수에 대한 지원

Environment.SetEnvironmentVariable(String, String)을 사용하여 환경 변수를 빈 문자열로 설정할 수 있도록 지원이 추가되었습니다. 이 작업의 일환으로 ProcessStartInfo.EnvironmentProcessStartInfo.EnvironmentVariables 속성을 설정하는 동작은 Environment.SetEnvironmentVariable(String, String)의 동작과 일치하도록 변경되었습니다.

이전 동작

이전에

  • Environment.SetEnvironmentVariable("TEST", string.Empty)Environment.SetEnvironmentVariable("TEST", null)은 둘 다 환경 변수를 삭제했습니다.
  • ProcessStartInfo.Environment["TEST"] = string.EmptyProcessStartInfo.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)을 사용하여 환경 변수를 삭제하려면, 값 인수로 string.Empty 대신 null을 전달하도록 코드를 변경합니다.

ProcessStartInfo.Environment 또는 ProcessStartInfo.EnvironmentVariables을 사용하여 환경 변수를 빈 값으로 설정하려면, 이러한 속성을 null 대신 string.Empty로 설정하도록 코드를 변경합니다.

영향을 받는 API