突然之间,我的Console.WriteLine在“输出”窗口中不再显示任何内容。不过,Debug.WriteLine确实可以工作。我已经用右键单击"Output“窗口检查了所有消息仍处于选中状态。我也检查了设置,但什么也找不到。
我的想法用完了,有谁有办法解决这个问题吗?
发布于 2013-06-08 18:45:54
将Console.Write/Line()的输出显示在VS output窗口中是一项非常重要的功能。它需要使用"Visual Studio宿主进程“进行调试。你会在你的构建目录和TaskMgr.exe的进程选项卡中看到它,它与你的项目同名,但以"vshost.exe“结尾。
在托管过程中会发生大量看不见的魔法。它是CLR的自定义宿主,为CLR提供了不同于您通常使用的行为。它的记录非常少,它存在的主要原因似乎与安全有关。但是它的一个优点是能够将用Console.Write编写的输出重定向到输出窗口。
Project + Properties,Debug选项卡,验证"Enable the Visual Studio hosting process“选项是否仍处于勾选状态。
否则,这可能是一次幸运的不幸。您确实应该在代码中使用Debug.Print()或Debug.Write/Line()来生成诊断字符串。它使用一种完全不同的方式来生成输出,这种方式不依赖于宿主进程。它使用默认的TraceListener,它直接与调试器对话。底层的winapi调用是OutputDebugString()。Debug类的最佳功能是,当您生成程序的发布版本时,您在代码中进行的调用将自动移除。因此,它们不再需要任何开销,Console.Write不是这样。并且您可以重新配置跟踪侦听器以生成输出到例如文件。
发布于 2014-08-04 19:50:30
我今天遇到了同样的问题,并解决了它。我看了很多帖子,但都没帮上忙。根本原因是您使用了不同的文件,这些文件在不同的类中具有相同的void Main()。当有两个文件具有名为main()的公共函数时,它将不起作用。系统似乎只使用了名为program类的默认类。
你可以做的就是将代码移到program.cs文件下(如果你使用C#),那么在新窗口中就可以了。
发布于 2021-08-20 23:34:15
下面将允许您查看这两种类型的“控制台”消息:
System.Console.WriteLine($"hello console!");System.Diagnostics.Debug.WriteLine($"hello debugger!");
Visual Studio中的
调试器调试时,在输出窗口顶部的“显示输出来源”下选择:“
https://stackoverflow.com/questions/16997730
复制相似问题