從 .NET 10 開始,一些非命令核心的 CLI 命令輸出會發送到dotnet,而不是stderr。
推出的版本
.NET 10
先前的行為
先前,CLI 的 dotnet 首次執行訊息會發出至 stdout。
新行為
從 .NET 10 開始,CLI 的 dotnet 首次執行訊息會發出至 stderr。 (未來,更多訊息將經歷類似的變更。
破壞性變更的類型
此變更為行為變更。
變更的原因
寫入 stdout 的資訊與所叫用的命令沒有直接關係,會禁止在腳本或非互動式環境中使用命令。 當診斷、詳細訊息和附帶通知等非主要輸出移至 stderr時 stdout ,會保持乾淨以進行剖析或其他解譯。
建議的動作
對於大部分的非 PowerShell 使用者,此變更應該不需要任何動作。
針對 PowerShell 使用者,我們建議至少使用 PowerShell 版本 7.2,因為在這個版本中,重新導向至 stderr 不會設定 PowerShell 的 $Error 變數,從而避免 PowerShell 誤判先前命令執行失敗。
受影響的 API
沒有。