空の環境変数のサポート
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) を使用して環境変数を削除するには、値の引数として string.Empty
ではなく null
を渡すようにコードを変更します。
ProcessStartInfo.Environment または ProcessStartInfo.EnvironmentVariablesを使用して環境変数を空の値に設定するには、これらのプロパティを null
ではなく string.Empty
に設定するようにコードを変更します。
影響を受ける API
.NET