Debug.WriteLine什么都没显示

使用时

using System.Diagnostics; 

 Debug.WriteLine("Test"); 

运行应用程序后,输出中看不到“测试”。 但是,如果我使用msgbox函数,则会弹出msgbox,因此会到达该行。

我在错误的窗口寻找或者我需要改变什么?

我正在使用VC#Express。

这种行为有两种可能的原因

  • 应用程序正在发布模式下编译, Debug.WriteLine调用不在最终程序中
  • 程序中没有跟踪侦听器,因此无法输出消息

诊断此问题的最简单方法是将代码更改为

 #if DEBUG Console.WriteLine("the message"); #endif 

如果它打印,则跟踪侦听器存在问题,否则您将在Release中进行编译

在菜单>工具>选项>调试>常规:

  • 确保未选中“将所有输出窗口文本重定向到即时窗口”

在项目属性>构建:

  • 配置:调试
  • 检查“定义DEBUG常量”
  • 选中“定义TRACE常数”

在“输出”窗口中:

  • 显示输出:Debug
  • 在输出窗口中单击鼠标右键,确保选中“程序输出”

我相信“Debug.WriteLine()”会写入Listeners集合。 从那里,您可以确定将写入调试信息的位置。 默认情况下,“输出”应该是它出现的位置,但是如果您在查看信息时遇到问题,则创建一个不同的侦听器来获取调试信息。

这是MSDN示例:

 TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(myWriter); 

我不确定是否有人提到过这个原因,但如果我在Debug-mode中编译然后只运行程序(Ctrl + F5)而不是选择Start Debugging(F5),我也不会看到Debug.WriteLine

因此仅仅在调试模式下编译是不够的,你还必须主动调试程序而不是只运行它:)

Debug.WriteLine("Test"); 当您处于调试模式时,应该在输出窗口中显示。 如果要调试正在运行的应用程序(发布模式),可以使用Trace,这将显示在Windows事件中。

答案很简单。 可能是你按ctrl + F5 ,这意味着启动而不调试。 只需按F5即可Start Debugging模式。

在此处输入图像描述

对任何人谷歌搜索:虽然有各种答案指向删除配置文件中的听众也注意

  

在该部分

  

因为这也抑制了调试输出。

如果其他任何答案都不起作用。 尝试在Debug.WriteLine行中放置一个断点,看看它是否被击中。

如果它没有被击中,原因是因为正在执行旧版本的代码。

要解决此问题,请先检查一下

资源

转到“工具 – 选项”

在项目和解决方案 – >构建和运行下选择“运行时,项目过期时”下的“始终构建”

在此处输入图像描述

并检查是否清除了临时文件。 检查这个SO问题

这对我有用。

如果即使失败也尝试重新启动VS. 大部分时间都有效。