使用时
using System.Diagnostics;
和
Debug.WriteLine("Test");
运行应用程序后,输出中不会显示“Test”。但是,如果我使用msgbox函数,则会弹出msgbox,因此会到达该行。
我是在寻找错误的窗口,还是需要改变什么?
我正在使用VC#Express。
答案 0 :(得分:62)
在菜单上>工具>选项>调试>一般:
关于项目属性>建立:
在“输出”窗口中:
答案 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)
答案 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
行中放置一个断点,看看它是否被击中。
如果没有被击中,原因是因为正在执行旧版本的代码。
要解决此问题,请先检查
转到工具 - 选项
在项目和解决方案下 - &gt;构建并运行选择“始终构建” 在“运行中,当项目过期时”
并检查是否清除了临时文件。请检查此SO Question
这对我有用。
即使失败也尝试重新启动VS.大部分时间都有效。
答案 9 :(得分:0)
在将代码部署到远程服务器时,我以不同的方式发生了此问题。
我已经在Configurations Manager中拥有许多预配置的构建配置。发布时我总是选择暂存环境设置。由于我一直在本地计算机上处于调试模式,因此我从未想到预配置的构建配置也具有此模式。
因此请检查设置下的配置-DEBUG或RELEASE并选择DEBUG
还请确保将.pdb文件以及相应的dll复制。
希望这对某人有帮助
答案 10 :(得分:0)
将项目从存储库中拉出后,启动按钮中的设置与应有的不同。它已准备好发布。如果您到此为止并且第一个答案不起作用,请检查它。
也使用 当发布被错误选择时,跟踪而不是调试似乎可以工作。