#if DEBUG似乎不起作用

时间:2014-11-28 18:36:47

标签: c#

我的C#app处于调试模式。我正在尝试使用Debug.WriteLine(xxx),但没有任何内容写入控制台。我正在使用VS 2013社区和C#。我在cs文件的开头有#define DEBUG,在using语句之上,然后在Debug.WriteLine()语句之前有#IF DEBUG但没有任何反应。没有错误。

2 个答案:

答案 0 :(得分:4)

默认情况下,调试输出不会重定向到控制台。

您可以创建一个ConsoleTraceListener实例并添加到跟踪侦听器,这将使调试输出转到控制台:

using (ConsoleTraceListener listener = new ConsoleTraceListener()) {
  Trace.Listeners.Add(listener);

  Debug.WriteLine("test");

}

您也可以在配置中执行此操作,以便在不添加代码的情况下将其应用于应用程序。例如:

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="configConsoleListener"
             type="System.Diagnostics.ConsoleTraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
 </configuration>

参考:ConsoleTraceListener Class

答案 1 :(得分:0)

您是否检查过Visual Studio的输出控制台?如果您在Visual Studio(= debugging)中运行应用程序,则会在那里转发Debug输出。