35

使用时

using System.Diagnostics;

Debug.WriteLine("Test");

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

我看错了窗口还是我必须改变什么?

我正在使用 VC# Express。

4

11 回答 11

82

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

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

在项目属性 > 构建:

  • 配置:调试
  • “定义调试常量”被选中
  • “定义跟踪常数”被选中

在输出窗口:

  • 显示来自:调试的输出
  • 右键单击输出窗口并确保选中“程序输出”
于 2015-03-25T18:00:43.070 回答
30

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

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

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

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

如果它打印,那么您的跟踪侦听器有问题,否则您在 Release 中编译

于 2012-02-21T01:07:52.620 回答
8

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

这是 MSDN 示例:

TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(myWriter);
于 2012-02-20T23:22:00.660 回答
4

我不确定是否有人提到过这个原因,但是如果我在调试模式下编译然后只运行程序(Ctrl + F5)而不是选择开始调试(F5),我也不会看到Debug.WriteLine

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

于 2013-11-26T13:30:55.103 回答
2

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

于 2012-02-20T23:12:44.123 回答
2

答案很简单。可能是您按ctrl+F5表示在不调试的情况下启动。只需按F5Start Debugging模式。

在此处输入图像描述

于 2016-10-25T01:48:25.627 回答
1

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

<remove name="OPTIONSVerbHandler" />

在该部分

<handlers>

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

于 2017-06-15T15:11:07.393 回答
1

对我有帮助的是选择“工具 => 选项 => 项目和解决方案 => 构建和运行 => MSBuild 项目构建输出详细程度”到“诊断”。之后,它刚刚开始在 Debug 块中显示调试输出,而没有添加任何侦听器。[你需要至少 10 声望才能发布图片。非常感谢 SO!]

于 2020-06-14T04:12:30.743 回答
1

将项目从 repo 中拉出后,启动按钮中的设置与应有的不同。它被设置为发布。如果您最终来到这里并且第一个答案不起作用,请检查它。

项目启动设置

当错误地选择了发布时,使用 Trace 而不是 Debug 似乎也有效。

于 2021-05-10T00:50:06.100 回答
0

万一其他人的答案不起作用。尝试在行中放置一个断点Debug.WriteLine,看看它是否被击中。

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

要解决这个问题,首先检查这个

来源

转到工具-选项

在 Projects and solution -> Build and Run 下选择“On Run, when projects are out of date”下的“Always build”

在此处输入图像描述

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

这对我有用。

如果连这都失败了,请尝试重新启动 VS。大部分时间都在工作。

于 2017-08-28T11:06:33.160 回答
0

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

我已经在配置管理器中有一堆预配置的构建配置。我总是在发布时选择暂存环境设置。由于我在本地机器上处于调试模式,所以我从未想过预配置的构建配置也有模式。

所以请检查设置下的配置 - DEBUG 或 RELEASE 并选择 DEBUG

在此处输入图像描述

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

希望这可以帮助某人

于 2020-07-02T00:44:55.937 回答