为什么System.Diagnostics.Debug.WriteLine在Visual Studio 2010 C#中不起作用?

时间:2012-10-21 17:52:20

标签: c# asp.net-mvc visual-studio-2010 visual-studio debugging

我的代码中有以下行:

System.Diagnostics.Debug.WriteLine("Title:" + title + "title[top]: " + title[top] + "title[sub]: " + title[sub]);

当我调试时,我看到它会转到这一行,但当我在Visual Studio 2010中查看输出窗口时,即使它显示“Debug”并且我使用“debug> run”运行,我也看不到任何内容。为什么呢?

6 个答案:

答案 0 :(得分:18)

检查以下项目 -

    调试时选择了
  1. DEBUG模式
  2. 在输出窗口中选择
  3. Debug选项 - enter image description here
  4. 查看断点是否在代码
  5. 中命中Debug.WriteLine
  6. 在代码
  7. 的前面插入Debug.AutoFlush = true
  8. 尝试检查解决方案的平台是否设置为任何CPU而不是x86(或x64)。
  9. 转到项目属性 - > Web - 在“调试器”部分中,选中“ASP.NET选项”
  10. Point #5的参考(阅读评论,它适用于那个人)

答案 1 :(得分:13)

对我来说,这解决了这个问题:

System.Diagnostics.Trace.WriteLine("whatever");

(使用Trace代替Debug

答案 2 :(得分:7)

在app.config文件中,确保跟踪侦听器中没有<clear/>元素。

您将有效地清除跟踪侦听器列表,包括用于Debug语句的默认跟踪侦听器。

以下是app.config文件中的内容:

<system.diagnostics>
    <trace>
      <listeners>
          <!-- This next line is the troublemaker. If it is there delete it-->
          <clear/>
      </listeners>
    </trace>
  </system.diagnostics>

答案 3 :(得分:3)

对我来说,我需要这样做才能解决问题:

1. Open the project's property page
2. Under Build tab, check "Define DEBUG constant" and "Define Trace constant"

瞧!

答案 4 :(得分:0)

我有同样的问题。使用Trace.WriteLine并检查“定义DEBUG常量”对我不起作用。

我注意到在“即时”窗口而不是“输出”窗口中找到了输出消息。

然后我取消选中工具中的“将所有输出窗口文本重定向到立即窗口”选项,并解决了我的问题。

答案 5 :(得分:0)

使用“ System.Diagnostics.Debug.WriteLine”在即时窗口中输出:-O