在没有控制台时写入标准输出
本文关键字:标准输出 控制台 | 更新日期: 2023-09-27 18:32:54
Console.Write* 在与控制台应用程序或附加了控制台的窗口应用程序一起使用时按预期工作。
但是,如果我创建一个没有控制台的应用程序并从命令行运行它,它不会按预期输出。当提示符在程序仍在运行时重新出现时,它似乎异步启动应用程序。
如何以文本输出显示在附加的控制台或运行它的命令提示符中的方式输出?或者,如何在应用程序正确等待并捕获预期输出的情况下以不同的方式运行应用程序?
考虑使用 Logger 框架,而不是依赖 Console。日志记录框架提供了多种使用其日志的方法,因此您可以决定哪种方式最适合您,而无需更改代码。
例如,如果您使用的日志记录框架设置为为了控制台应用程序而将日志消息输出到控制台,则只需更改一个配置选项即可将其输出到文件,即使您没有打开控制台,也可以使用 Baretail 等工具观看该文件。或者,您可以轻松地将要输出的配置更改为System.Diagnostics.Debug
以便它显示在 Visual Studio 输出窗口中。
如果只想在 Visual Studio 中显示调试输出,请在应用程序运行时使用 System.Diagnostics.Debug.WriteLine()
输出到 VS 中的"即时"窗口。 包装位于"IF"预编译器指令中,因此在编译为非调试版本时不会发生。 如果当前构建目标没有设置"DEBUG"标志(如默认的"发布"构建目标),编译器将完全忽略"IF"中的任何行。
#if DEBUG
System.Diagnostics.Debug.WriteLine()
#endif