Freigeben über


Unterstützung leerer Umgebungsvariablen

Unterstützung wurde hinzugefügt, um es zu ermöglichen, eine Umgebungsvariablen mithilfe von Environment.SetEnvironmentVariable(String, String) auf eine leere Zeichenfolge festzulegen. Im Rahmen dieser Maßnahme wurde das Verhalten des Festlegens der Eigenschaften ProcessStartInfo.Environment und ProcessStartInfo.EnvironmentVariables geändert, um mit dem Verhalten von Environment.SetEnvironmentVariable(String, String) konsistent zu sein.

Vorheriges Verhalten

Bislang galt:

  • Durch Environment.SetEnvironmentVariable("TEST", string.Empty) und Environment.SetEnvironmentVariable("TEST", null) wurde die Umgebungsvariable gelöscht.
  • Durch ProcessStartInfo.Environment["TEST"] = string.Empty und ProcessStartInfo.Environment["TEST"] = null wurde die Umgebungsvariable im untergeordneten Prozess auf einen leeren Wert festgelegt.

Neues Verhalten

Ab .NET 9 gilt:

  • Durch Environment.SetEnvironmentVariable("TEST", string.Empty) wird der Umgebungsvariablenwert auf einen leeren Wert festgelegt. Das Verhalten von Environment.SetEnvironmentVariable("TEST", null) bleibt unverändert (sprich: die Umgebungsvariable wird weiterhin gelöscht).
  • Durch ProcessStartInfo.Environment["TEST"] = null wird die Umgebungsvariable gelöscht. Das Verhalten von ProcessStartInfo.Environment["TEST"] = string.Empty bleibt unverändert (sprich: die Umgebungsvariable wird weiterhin auf einen leeren Wert festgelegt).

Eingeführt in Version

.NET 9 Preview 6

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Vor dieser Änderung war es nicht möglich, eine Umgebungsvariable mithilfe von Environment.SetEnvironmentVariable(String, String) auf einen leeren Wert festzulegen, was auf allen unterstützten Plattformen ein gültiger Umgebungsvariablenwert ist.

Wenn Sie eine Umgebungsvariable mithilfe von Environment.SetEnvironmentVariable(String, String)löschen möchten, ändern Sie Ihren Code, um null anstelle von string.Empty als Wertargument zu übergeben.

Wenn Sie die Umgebungsvariable mithilfe von ProcessStartInfo.Environment oder ProcessStartInfo.EnvironmentVariables auf einen leeren Wert festlegen möchten, ändern Sie Ihren Code so, dass diese Eigenschaften auf string.Empty anstatt auf null festgelegt werden.

Betroffene APIs