¿Dónde aparece la salida System.Diagnostics.Debug.Write?

El siguiente progtwig C # (creado con csc hello.cs ) imprime solo Hello via Console! en la consola y Hello via OutputDebugString en la ventana DebugView. Sin embargo, no puedo ver ninguna de las llamadas System.Diagnostics.* . ¿Porqué es eso?

 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" ); } } 

¿Es posible que se necesiten algunos modificadores de línea de comando especiales para csc ?

No estoy usando Visual Studio para ninguno de mis desarrollos, esto es puro material de línea de comandos.

Como han señalado otros, los oyentes deben registrarse para leer estos flujos. También tenga en cuenta que Debug.Write solo funcionará si se establece el indicador de comstackción DEBUG , mientras que Trace.Write solo funcionará si se establece el indicador de comstackción TRACE .

Establecer las banderas DEBUG y / o TRACE se realiza fácilmente en las propiedades del proyecto en Visual Studio o suministrando los siguientes argumentos a csc.exe

/define:DEBUG;TRACE

Mientras se depura System.Diagnostics.Debug.WriteLine se mostrará en la ventana de salida ( Ctrl + Alt + O ), también puede agregar un TraceListener a la colección Debug.Listeners para especificar Debug.WriteLine llamadas Debug.WriteLine a la salida en otras ubicaciones.

Nota: Debug.WriteLine posible que las llamadas a Debug.WriteLine no se muestren en la ventana de resultados si tiene la opción de Visual Studio “Redirigir todo el texto de la ventana de salida a la ventana Inmediato” marcada en el menú HerramientasOpcionesDepuraciónGeneral . Para mostrar ” HerramientasOpcionesDepuración “, marque la casilla junto a ” HerramientasOpcionesMostrar todas las configuraciones “.

Necesita agregar un TraceListener para verlos aparecer en la consola.

 TextWriterTraceListener writer = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(writer); 

También aparecen en la ventana Salida de Visual Studio cuando está en modo Depuración.

Mientras está depurando en Visual Studio, visualice la ventana “Salida” (Ver -> Salida). Se mostrará allí.

Los mensajes de Diagnóstico se muestran en la Output Window

texto alternativo http://sofes.miximages.com/c%23/VS_debug_console_2.png

Cuando escribo debug.write (“”) en el código, sale en la “ventana Inmediata”, no en la “ventana de salida”.

Puedes probarlo. Para mostrar la ventana “Inmediato” ( DepuraciónVentanaInmediato ).

La solución para mi caso es:

  1. Haga clic derecho en la ventana de salida;
  2. Compruebe la ‘Salida del progtwig’

Para VB.NET se aplica lo siguiente. Debes seleccionar “Depurar” Y asegúrate de “Iniciar la depuración”. Esto puede ser alcanzado presionando F5 .

Además, Console.WriteLine solo mostrará mensajes cuando construya como “Versión” en su ventana de Salida.

Como se mencionó anteriormente, abra la ventana de Salida con VerSalida Y asegúrese de seleccionar “Crear” si desea ver los mensajes de Console.WriteLine o “Debug” si desea ver los mensajes Debug.WriteLine o Trace.WriteLine.