繁体   English   中英

Debug.WriteLine 什么也没显示

[英]Debug.WriteLine shows nothing

使用时

using System.Diagnostics;

Debug.WriteLine("Test");

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

我是在看错窗口还是我需要改变什么?

我正在使用 VC# Express。

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

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

在项目属性 > 构建上:

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

在输出窗口中:

  • 显示输出:调试
  • 右键单击输出窗口并确保选中“程序输出”

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

  • 应用程序正在以 Release 模式编译,并且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 程序,而不仅仅是运行它:)

答案很简单。 可能是您按了ctrl + F5 ,这意味着不进行调试就开始。 只需按F5即可Start Debugging模式。

在此处输入图片说明

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

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

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

<remove name="OPTIONSVerbHandler" />

在该部分

<handlers>

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

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

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

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

来源

转到工具-选项

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

在此处输入图片说明

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

这对我有用。

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

在将代码部署到远程服务器时,我以不同的方式出现了这个问题。

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

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

在此处输入图片说明

还要确保将 .pdb 文件与相应的 dll 一起复制。

希望这有助于某人

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

项目启动设置

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM