c# – System.Diagnostics.Debug.Write输出出现在哪里?

以下C#程序(使用csc hello.cs构建)仅通过控制台打印Hello!并在DebugView窗口中通过OutputDebugString Hello。但是,我看不到System.Diagnostics。*调用。这是为什么?

using System;
using System.Runtime.InteropServices;
class Hello {
    [DllImport("kernel32.dll", CharSet=CharSet.Auto)]
    public static extern void OutputDebugString(string message);

    static void Main() {
        Console.Write( "Hello via Console!" );
        System.Diagnostics.Debug.Write( "Hello via Debug!" );
        System.Diagnostics.Trace.Write( "Hello via Trace!" );
        OutputDebugString( "Hello via OutputDebugString" );
    }
}

是否可能有一些特殊的命令行开关所需的csc?

我不是使用Visual Studio的任何我的发展,这是纯命令行的东西。

正如其他人所指出的,为了读取这些流,必须注册监听器。还要注意,Debug.Write将仅在DEBUG构建标志被设置时才起作用,而Trace.Write仅在TRACE构建标志被设置时才起作用。

设置DEBUG和/或TRACE标志可以在Visual Studio中的项目属性中轻松完成,或者通过向csc.exe提供以下参数

/define:DEBUG;TRACE

相关文章
相关标签/搜索