Debug.WriteLine什么都没显示

时间:2012-02-20 23:09:24

标签: c# debugging

使用时

using System.Diagnostics;

Debug.WriteLine("Test");

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

我是在寻找错误的窗口,还是需要改变什么?

我正在使用VC#Express。

11 个答案:

答案 0 :(得分:62)

在菜单上>工具>选项>调试>一般:

  • 确保"将所有输出窗口文本重定向到即时窗口"未经检查

关于项目属性>建立:

  • 配置:调试
  • "定义DEBUG常数"已检查
  • "定义TRACE常数"已检查

在“输出”窗口中:

  • 显示输出:Debug
  • 在输出窗口中单击鼠标右键,确保"程序输出"已检查

答案 1 :(得分:22)

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

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

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

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

如果打印出来,则跟踪侦听器存在问题,否则您将在Release

中进行编译

答案 2 :(得分:6)

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

以下是MSDN示例:

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:2)

当您处于调试模式时,

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

答案 5 :(得分:1)

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

enter image description here

答案 6 :(得分:1)

对我有所帮助的是将“工具=>选项=>项目和解决方案=>生成并运行=> MSBuild项目生成输出详细程度”选择为“诊断”。之后,它开始在Debug块中显示调试输出,而没有添加任何侦听器。 [You need at least 10 reputation to post images. Big thanks to SO for this!]

答案 7 :(得分:0)

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

<remove name="OPTIONSVerbHandler" />

中的

部分

<handlers>

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

答案 8 :(得分:0)

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

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

要解决此问题,请先检查

Source

  

转到工具 - 选项

     

在项目和解决方案下 - &gt;构建并运行选择“始终构建”   在“运行中,当项目过期时”

     

enter image description here

并检查是否清除了临时文件。请检查此SO Question

这对我有用。

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

答案 9 :(得分:0)

在将代码部署到远程服务器时,我以不同的方式发生了此问题。

我已经在Configurations Manager中拥有许多预配置的构建配置。发布时我总是选择暂存环境设置。由于我一直在本地计算机上处​​于调试模式,因此我从未想到预配置的构建配置也具有此模式。

因此请检查设置下的配置-DEBUG或RELEASE并选择DEBUG

enter image description here

还请确保将.pdb文件以及相应的dll复制。

希望这对某人有帮助

答案 10 :(得分:0)

将项目从存储库中拉出后,启动按钮中的设置与应有的不同。它已准备好发布。如果您到此为止并且第一个答案不起作用,请检查它。

Project launch settings

也使用 当发布被错误选择时,跟踪而不是调试似乎可以工作。