从 .NET 10 开始, dotnet watch 将其面向内部的日志消息发出到 stderr 通道而不是 stdout通道。 这项更改是整体趋势的一部分,即CLI命令趋向于不过度遮盖通道dotnetstdout。 运行某些类型的应用程序(如 LSP 或 MCP 服务器)时,该通道通常保留为特殊语义。
已引入的版本
.NET 10
以前的行为
以前,dotnet watch 向 stdout 发送日志消息。
新行为
从 .NET 10 开始,dotnet watch 发出日志消息到 stderr。
破坏性变更的类型
此更改为行为更改。
更改原因
此更改是 CLI 命令不遮挡通道的总体趋势的一部分,此通道通常用于在运行某些类型的应用程序(如 LSP 或 MCP 服务器)时被保留或被认为具有特殊语义。 通常,.NET CLI 应该不干扰你的应用程序。
建议的措施
大多数用户都不需要采取任何措施。 如果需要在 dotnet watch 上的消息 stdout,可以将 stderr 流重定向到 stdout。 例如,使用2>&1将2的stderr文件描述符重定向到1的stdout文件描述符。
受影响的 API
没有。