System.Diagnostics.Debug.Write输出出现在哪里?
以下C#程序(使用内置csc hello.cs
)仅Hello via Console!
在控制台和Hello via
OutputDebugStringDebugView窗口中打印。但是,我看不到任何一个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
设置了构建标记时,该功能才起作用。
在Visual Studio的项目属性中或通过向csc.exe提供以下参数,可以轻松地设置DEBUG
和/或TRACE
标志。
/define:DEBUG;TRACE
以上是 System.Diagnostics.Debug.Write输出出现在哪里? 的全部内容, 来源链接: utcz.com/qa/403055.html