从我在这里读到的所有内容来看,非控制台应用程序(如项目设置中的“Windows 应用程序”)对于 Console.WriteLine 和 Debug.WriteLine 的行为应该相同,因为它们在启动时都应该登录到 VS 输出窗口调试器。
但是我只在VS输出窗口中得到Debug.WriteLine的输出,当我有(在main()中)两者时:
System.Console.WriteLine("test console");
System.Diagnostics.Debug.WriteLine("test debug");
我怎样才能直接“看到”控制台输出?
当我将项目设置更改为“控制台应用程序”时,我会在附加控制台窗口中看到这些消息。
通过传递给 Debug.WriteLine 的特殊 TextWriter 编写我自己的重定向,就像在这篇 SO 帖子中描述的那样,我至少在调试输出窗口中看到了输出。
注意:这只是一个测试设置。在“现实生活”中,我有一个使用 Console.WriteLine 的外部 dll 来输出我感兴趣的调试消息。在我这边,我使用的是 Debug.WriteLine。
使用 Windows 8 64 位、Visual Studio 2012、AnyCPU 构建。