[英]Debug.WriteLine shows nothing
使用时
using System.Diagnostics;
和
Debug.WriteLine("Test");
运行应用程序后,在输出中看不到“测试”。 但是,如果我改用 msgbox 函数,则会弹出 msgbox,因此到达该行。
我是在看错窗口还是我需要改变什么?
我正在使用 VC# Express。
在菜单 > 工具 > 选项 > 调试 > 常规上:
在项目属性 > 构建上:
在输出窗口中:
这种行为有两个可能的原因
Debug.WriteLine
调用不在最终程序中诊断此问题的最简单方法是将代码更改为
#if DEBUG
Console.WriteLine("the message");
#endif
如果它打印,那么您的跟踪侦听器有问题,否则您将在 Release 中进行编译
我相信“Debug.WriteLine()”会写入Listeners集合。 从那里您可以确定将写入调试信息的位置。 默认情况下,“输出”应该是它出现的地方,但如果您在查看信息时遇到问题,则创建一个不同的侦听器来获取调试信息。
这是 MSDN 示例:
TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(myWriter);
我不确定是否有人提到过这个原因,但如果我在调试模式下编译,然后只运行程序 (Ctrl + F5) 而不是选择开始调试 (F5),我也不会看到Debug.WriteLine
。
因此,仅仅在 Debug 模式下编译是不够的,您还必须主动 Debug 程序,而不仅仅是运行它:)
Debug.WriteLine("Test");
当您处于调试模式时,应显示在输出窗口中。 如果您想调试正在运行的应用程序(发布模式),您可以使用 Trace,这将显示在 Windows 事件中。
对我有帮助的是选择“工具 => 选项 => 项目和解决方案 => 构建和运行 => MSBuild 项目构建输出详细信息”到“诊断”。 之后,它才开始在 Debug 块中显示调试输出,而没有添加任何侦听器。 [您需要至少 10 声望才能发布图片。 非常感谢 SO! ]
对于任何使用谷歌搜索的人:虽然有各种答案指向删除配置文件中的侦听器,但也要注意
<remove name="OPTIONSVerbHandler" />
在该部分
<handlers>
因为这也会抑制调试输出。
将项目从仓库中拉出后,启动按钮中的设置与应有的不同。 它已准备好发布。 如果您最终到这里并且第一个答案不起作用,请检查它。
当发布被错误选择时,使用 Trace 而不是 Debug 似乎也有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.