共用方式為


支援空白的環境變數

新增支援,以便能夠使用 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 Preview 6

中斷性變更的類型

此變更為行為變更

變更原因

在此變更之前,您無法使用 Environment.SetEnvironmentVariable(String, String) 將環境變數設定為空白的值,其為所有支援平台上的有效環境變數值。

若要使用 Environment.SetEnvironmentVariable(String, String) 來刪除環境變數,請將程式碼變更為傳遞 null 而不是 string.Empty 做為值引數。

若要使用 ProcessStartInfo.EnvironmentProcessStartInfo.EnvironmentVariables 將環境變數設定為空白的值,請變更您的程式碼,將這些屬性設定為 string.Empty,而不是 null

受影響的 API