有人可以解释为什么我的Debug.Write没有明显的原因停止工作 - 没有输出可见?在Windows XP,Windows 2003 Server和Windows 7上,Visual Studio 2008(从未在2005年)多次发生这种情况。
这是每个项目,同时(在Windows 2003服务器上),我有Debug.Write工作但不起作用的项目。
目前,在Windows 7上我根本没有调试输出。我创建了一个新的Windows窗体项目,在Form_Load中运行Debug.Write(“bla”)运行它,并且在Output窗口中没有任何反应。 vb.net和c#项目都有相同的行为。
更新:我刚刚发现我的调试输出正在显示,但在我的立即窗口中,而不是输出。为什么???
更新:在Visual Studio选项中,调试 - 常规:将所有输出窗口文本重定向到立即窗口下有一个设置。
为什么默认选中这个,我不知道......
答案 0 :(得分:5)
工具>选项>调试,常规有一个设置,将所有输出重定向到即时窗口。
答案 1 :(得分:1)
如果您肯定在调试模式中运行,那么我建议使用表单加载中的简单Debug.Print快速点头项目。如果你可以让它在一个点头项目中工作,那么它可能与您在原始项目中包含的额外引用有关。
是否出现在任何窗口中?
编辑:找到此here
a)转到菜单工具,然后选择选项。这里确保您在所选选项屏幕的左下方显示“显示所有设置”。
b)导航至:调试 - >一般
c)确保您有“将所有输出窗口文本重定向到立即窗口”选项
答案 2 :(得分:0)
您是否错误地构建了发布版本?发布版本不会在Debug.Write()
调用中编译。
来自MSDN文档(http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.aspx):
ConditionalAttribute
属性应用于Debug的方法。支持ConditionalAttribute
的编译器会忽略对这些方法的调用,除非将“DEBUG”定义为条件编译符号。请参阅编译器的文档以确定是否支持ConditionalAttribute
以及定义条件编译符号的语法。要在C#和J#中定义“DEBUG”条件编译符号,请在编译代码时将
/d:DEBUG
选项添加到编译器命令行,或将#define DEBUG
添加到文件顶部。在Visual Basic中,将/d:DEBUG=True
选项添加到编译器命令行或将#Const DEBUG=True
添加到文件中。
另请注意,Debug.Write()
方法将其输出发送到TraceListeners集合,该集合可以在运行时或配置文件中添加或删除侦听器 - 确保任何配置文件不会更改调试输出的位置应该去。
答案 3 :(得分:0)
在“输出”窗口中,您确定从“显示输出来自:”下拉菜单中选择了“调试”吗?只是一个想法!