2010-02-10 110 views
3

有人可以解释为什么我的Debug.Write停止工作没有明显的原因 - 没有输出可见?这发生在我身上很多次在Visual Studio 2008(从来没有在2005年),在Windows XP和Windows 2003 Server和Windows 7为什么我的Debug.Write被破坏?

这是每个项目,并在同一时间(在Windows 2003服务器),我有Debug.Write工作和不工作的项目。

目前,在Windows 7上我根本没有调试输出。我创建了一个新的Windows窗体项目,在Form_Load中运行Debug.Write(“bla”),并在Output窗口中没有任何反应。 vb.net和c#项目中都有相同的行为。

更新:我刚刚发现我的调试输出正在显示,但在我的立即窗口,而不是输出。为什么???

更新:在Visual Studio选项中,调试 - 常规:将所有输出窗口文本重定向到立即窗口。

为什么这个默认选中的,我不知道......

+1

你是否偶然在Release配置中运行? – 2010-02-10 08:41:19

+0

哦,我希望它是这么简单:) – Vnuk 2010-02-10 08:44:41

+0

你真的在寻找输出的地方吗?它不会默认打印到控制台(反正我的测试)。 – 2010-02-10 08:46:17

回答

5

工具>选项>调试,一般有一个设置将所有输出重定向到直接窗口。

+0

+1击败我吧 – kevchadders 2010-02-10 08:53:54

+0

漂亮的风格 - 如果它在我的系统上设置了,而且我不知道它会导致我疯狂。不幸的是,我确信有一天我会忘记这个答案。 – 2010-02-10 09:16:00

0

你构建了错误的发布版本?发布版本不会在Debug.Write()调用中编译。

从MSDN文档(http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.aspx):

ConditionalAttribute的属性被应用到调试的方法。除非“DEBUG”被定义为条件编译符号,否则支持ConditionalAttribute的编译器将忽略对这些方法的调用。请参阅编译器的文档以确定是否支持ConditionalAttribute以及用于定义条件编译符号的语法。

要定义“DEBUG”条件编译C#和J#符号,将/d:DEBUG选项编译器命令行,当你编译代码或添加#define DEBUG到文件的顶部。在Visual Basic中,将/d:DEBUG=True选项添加到编译器命令行或将#Const DEBUG=True添加到该文件。

还要注意Debug.Write()方法将其输出到TraceListeners集合,它可以有听众添加或在运行时或通过一个配置文件删除 - 确保任何配置文件并没有改变,其中调试输出应要走了。

1

如果你明确运行在调试模式那么我会建议一个快速的noddy项目与一个简单的Debug.Print表单加载。如果你可以让它在一个noddy项目中工作,那么它可能与你在原始项目中包含的额外参考文献有关。

它出现在任何窗口中吗?


编辑:发现这个here

a)进入菜单工具,然后选项。这里请确保您已选择选项屏幕左下方的“显示所有设置”。

B)导航到:调试 - >常规

三)确保你可以选择“重定向所有输出窗口的文本即时窗口”

0

在输出窗口中,您是否确定从“显示输出来自:”下拉列表中选择了“调试”?只是一个想法!

相关问题