Console.WriteLine在VS2012中不再起作用了

时间:2013-06-08 08:48:38

标签: c# visual-studio visual-studio-2012

我的Console.WriteLine突然在“输出”窗口中不再显示任何内容。 Debug.WriteLine确实有效。我已经检查过,右键单击“输出”窗口,仍然检查所有消息。我也经历了设置但找不到任何东西。

我没有想法,有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

从Console.Write / Line()获取输出以显示在VS Output窗口中是一项非常重要的功能。它需要使用“Visual Studio Hosting Process”进行调试。您将在构建目录和TaskMgr.exe的进程选项卡中看到它,它与您的项目具有相同的名称,但以“vshost.exe”结尾。

在托管过程中发生了相当多的隐形魔法。它是CLR的自定义主机,它为CLR提供与您通常运行的行为不同的行为。它的记录很少,其存在的主要原因似乎与安全性有关。但它需要注意的一个好处是能够将使用Console.Write写入的输出重定向到“输出”窗口。

Project + Properties,Debug选项卡,确认仍然勾选“启用Visual Studio托管过程”选项。

否则这可能是一次幸运的事故。你真的应该在你的代码中使用Debug.Print()或Debug.Write / Line()来生成诊断字符串。它使用完全不同的方式生成输出,不依赖于托管过程。它使用默认的TraceListener,它直接与调试器对话。底层的winapi调用是OutputDebugString()。 Debug类的最佳功能是,在构建程序的Release版本时,会自动删除代码中的调用。所以他们不再承担任何开销,而不是Console.Write的情况。并且您可以重新配置跟踪侦听器以生成输出,例如,文件。

答案 1 :(得分:0)

我今天遇到了同样的问题,并解决了它。我检查了很多帖子,但没有帮助我。根本原因是您使用了不同的文件,这些文件在不同的类中具有相同的void Main()。当有两个文件具有名为main()的通用函数时,它将无法工作。系统似乎只使用默认的一个叫做程序类。

你可以做的是在program.cs文件下移动代码(如果你使用C#),那么在新窗口中就可以了。

相关问题