System.Diagnostics.Debug.Write输出在哪里出现?
以下C#程序(使用csc hello.cs构build) Hello via Console!打印出Hello via Console! 在控制台上,并Hello via OutputDebugString DebugView窗口中的Hello via OutputDebugString 。 但是,我看不到任何一个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,这是纯粹的命令行的东西。
 正如其他人所指出的,听众必须注册才能阅读这些stream。 另外请注意, Debug.Write只有在设置了DEBUG构build标志的情况下才会起作用,而Trace.Write只有在TRACE构build标志被设置的情况下才起作用。 
 设置DEBUG和/或TRACE标志很容易在Visual Studio的项目属性中完成,或者通过向csc.exe提供以下参数 
/define:DEBUG;TRACE
 debuggingSystem.Diagnostics.Debug.WriteLine将显示在输出窗口( Ctrl + Alt + O )中,还可以将TraceListener添加到Debug.Listeners集合,以指定Debug.WriteLine调用以在其他位置输出。 
 注:如果在工具 → 选项 → debugging → 常规下选中了Visual Studio选项“将所有输出窗口文本redirect到立即窗口”,则Debug.WriteLine调用可能不会显示在输出窗口中。 要显示“ 工具 → 选项 → debugging ”,选中“ 工具 → 选项 → 显示所有设置 ”旁边的checkbox。 
 您需要添加一个TraceListener以查看它们出现在控制台上。 
 TextWriterTraceListener writer = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(writer); 
处于debugging模式时,它们也出现在“Visual Studio输出”窗口中。
在Visual Studio中debugging时,显示“输出”窗口(视图 – >输出)。 它会显示在那里。
 诊断消息显示在Output Window 
当我在代码中写入debug.write(“”)时,它将在“立即窗口”而不是“输出窗口”中输出。
你可以尝试一下。 用于显示“立即”窗口( debugging → 窗口 → 立即 )。
我的情况的解决scheme是:
- 右键单击输出窗口;
- 检查“程序输出”
对于VB.NET,以下适用。 你必须select“debugging”,并确保你“开始debugging”。 这可以通过按F5来达到。
此外,Console.WriteLine将仅在“输出”窗口中构build为“发布”时显示消息。
如前所述,使用View → Output打开Output窗口,如果你想看到Console.WriteLine消息,请确保select“Build”,如果你想看到Debug.WriteLine或Trace.WriteLine消息,请select“Debug”。