次の方法で共有


空の環境変数のサポート

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) を使用して環境変数を削除するには、値の引数として string.Empty ではなく null を渡すようにコードを変更します。

ProcessStartInfo.Environment または ProcessStartInfo.EnvironmentVariablesを使用して環境変数を空の値に設定するには、これらのプロパティを null ではなく string.Emptyに設定するようにコードを変更します。

影響を受ける API