dotnet CLI 命令将非命令相关数据记录到 stderr

从 .NET 10 开始,某些不是命令核心调用结果的dotnet CLI 命令输出将从stdout转向stderr

已引入的版本

.NET 10 RC 2

以前的行为

以前,stdout CLI 的首次运行消息发出到dotnet

新行为

从 .NET 10 开始,CLI 发出的dotnet首次运行消息将会发送到stderr。 (将来,更多的消息将经历类似的变化。

破坏性变更的类型

此更改为行为更改

更改原因

写入到 stdout 的信息与调用的命令不直接相关,会阻碍在脚本或非交互情况下使用命令。 当非主要输出(如诊断、详细消息和附带通知)被转移到stderr时,stdout可以保持干净,便于分析或其他解释。

对于大多数非 PowerShell 用户,此更改不需要任何操作。

对于 PowerShell 用户,我们建议至少使用 PowerShell 版本 7.2,其中重定向到 stderr 不会设置 PowerShell 的 $Error 变量,并导致 PowerShell 认为上一命令执行失败。

受影响的 API

没有。