首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Console.WriteLine在VS2012中不再起作用

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

Stack Overflow用户
提问于 2013-06-08 16:48:38
回答 3查看 3.4K关注 0票数 2

突然之间,我的Console.WriteLine在“输出”窗口中不再显示任何内容。不过,Debug.WriteLine确实可以工作。我已经用右键单击"Output“窗口检查了所有消息仍处于选中状态。我也检查了设置,但什么也找不到。

我的想法用完了,有谁有办法解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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不是这样。并且您可以重新配置跟踪侦听器以生成输出到例如文件。

票数 3
EN

Stack Overflow用户

发布于 2014-08-04 19:50:30

我今天遇到了同样的问题,并解决了它。我看了很多帖子,但都没帮上忙。根本原因是您使用了不同的文件,这些文件在不同的类中具有相同的void Main()。当有两个文件具有名为main()的公共函数时,它将不起作用。系统似乎只使用了名为program类的默认类。

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

票数 0
EN

Stack Overflow用户

发布于 2021-08-20 23:34:15

下面将允许您查看这两种类型的“控制台”消息:

  1. 将以下两个测试粘贴到您的代码中,以便运行这两行代码。以下是对“输出”窗口的测试:

System.Console.WriteLine($"hello console!");System.Diagnostics.Debug.WriteLine($"hello debugger!");

Visual Studio中的

  1. 选择VIEW > OUTPUT。更改下面的两个设置后,您将在此输出窗口中看到上面的结果。

  1. 在不调试时,在输出窗口顶部的“显示输出自”下选择:"YourProjectName - ASP.NET核心Web服务器“。运行你的代码。您应该会看到上面的"Console“文本。

调试器调试时,在输出窗口顶部的“显示输出来源”下选择:“

  1. ”。在调试模式下运行代码。您应该会看到上面的“调试”文本。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16997730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档