为什么我的Debug.Write被破坏?
有人可以解释为什么我的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击败我吧 – kevchadders 2010-02-10 08:53:54
漂亮的风格 - 如果它在我的系统上设置了,而且我不知道它会导致我疯狂。不幸的是,我确信有一天我会忘记这个答案。 – 2010-02-10 09:16:00
你构建了错误的发布版本?发布版本不会在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集合,它可以有听众添加或在运行时或通过一个配置文件删除 - 确保任何配置文件并没有改变,其中调试输出应要走了。
如果你明确运行在调试模式那么我会建议一个快速的noddy项目与一个简单的Debug.Print表单加载。如果你可以让它在一个noddy项目中工作,那么它可能与你在原始项目中包含的额外参考文献有关。
它出现在任何窗口中吗?
编辑:发现这个here
a)进入菜单工具,然后选项。这里请确保您已选择选项屏幕左下方的“显示所有设置”。
B)导航到:调试 - >常规
三)确保你可以选择“重定向所有输出窗口的文本即时窗口”
在输出窗口中,您是否确定从“显示输出来自:”下拉列表中选择了“调试”?只是一个想法!
你是否偶然在Release配置中运行? – 2010-02-10 08:41:19
哦,我希望它是这么简单:) – Vnuk 2010-02-10 08:44:41
你真的在寻找输出的地方吗?它不会默认打印到控制台(反正我的测试)。 – 2010-02-10 08:46:17