Freigeben über


dotnet CLI-Befehle protokollieren nicht befehlsrelevante Daten in Stderr

Ab .NET 10 wird die CLI-Befehlsausgabe von nicht zwingend erforderlichen Informationen an dotnet statt an stderr gesendet.

Eingeführt in Version

.NET 10

Vorheriges Verhalten

Zuvor wurden Nachrichten der Erstausführung für die dotnet CLI ausgegeben stdout.

Neues Verhalten

Ab .NET 10 werden Nachrichten der ersten Ausführung für das dotnet CLI an stderr ausgegeben. (In Zukunft werden mehr Nachrichten einer ähnlichen Änderung unterzogen.)

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Informationen, die stdout nicht direkt mit dem aufgerufenen Befehl zusammenhängen, behindern die Verwendung von Befehlen in Skripting- oder nichtinteraktiven Umgebungen. Wenn nicht-primäre Ausgaben wie Diagnosen, ausführliche Nachrichten und zufällige Benachrichtigungen zu stderr verschoben werden, bleibt stdout sauber für die Analyse oder andere Interpretationen.

Für die meisten Nicht-PowerShell-Benutzer sollte diese Änderung keine Aktion erfordern.

Für PowerShell-Benutzer empfehlen wir die Verwendung mindestens der PowerShell-Version 7.2, bei der das Umleiten zu stderr die Variable von PowerShell $Error nicht festlegt und PowerShell denkt, dass die Ausführung des vorherigen Befehls fehlgeschlagen sei.

Betroffene APIs

Keiner.