支援空白的環境變數
新增支援,以便能夠使用 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 Preview 6
中斷性變更的類型
此變更為行為變更。
變更原因
在此變更之前,您無法使用 Environment.SetEnvironmentVariable(String, String) 將環境變數設定為空白的值,其為所有支援平台上的有效環境變數值。
建議的動作
若要使用 Environment.SetEnvironmentVariable(String, String) 來刪除環境變數,請將程式碼變更為傳遞 null
而不是 string.Empty
做為值引數。
若要使用 ProcessStartInfo.Environment 或 ProcessStartInfo.EnvironmentVariables 將環境變數設定為空白的值,請變更您的程式碼,將這些屬性設定為 string.Empty
,而不是 null
。