从 .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
没有。