The following C# program (built with csc hello.cs
) prints just Hello via Console!
on the console and Hello via OutputDebugString
in the DebugView window. However, I cannot see either of the System.Diagnostics.*
calls. Why is that?
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" );
}
}
Is there maybe some special command-line switches required for csc
?
I'm not using Visual Studio for any of my development, this is pure commandline stuff.
ベストアンサー1
While debugging System.Diagnostics.Debug.WriteLine
will display in the output window (Ctrl+Alt+O), you can also add a TraceListener
to the Debug.Listeners
collection to specify Debug.WriteLine
calls to output in other locations.
Note: Debug.WriteLine
calls may not display in the output window if you have the Visual Studio option "Redirect all Output Window text to the Immediate Window" checked under the menu Tools → Options → Debugging → General. To display "Tools → Options → Debugging", check the box next to "Tools → Options → Show All Settings".