c# - visual - para depurar este modulo cambie la configuracion de compilacion del proyecto a modo de depuracion




¿Escribir en la ventana de salida de Visual Studio? (8)

Agregue el espacio de nombres System.Diagnostics y luego puede usar Debug.WriteLine() para imprimir rápidamente un mensaje en la ventana de resultados del IDE. Para más detalles, por favor refiérase a estos:

Estoy tratando de escribir un mensaje en la ventana de salida para fines de depuración. Busqué una función como system.out.println("") Java. Intenté Debug.Write , Console.Write y Trace.Write . No da un error, pero tampoco imprime nada.

Las opciones "Definir constante DEBUG" y "Definir constante TRACE" están marcadas.

La opción Herramientas de menú → OpcionesDepuración"Redirigir todo el texto de la ventana de salida a la ventana inmediata" no está marcada.

Configuración: Activa (depuración)

Nota: creé un proyecto con el asistente como "Aplicación de Windows Forms" si es relevante. No tengo idea de dónde mirar.


Esto escribirá en la ventana de salida de depuración:

using System.Diagnostics;

Debug.WriteLine("Send to debug output.");

Esto requiere un marco de trabajo de terceros, a saber, Serilog , pero no obstante, he encontrado que es una experiencia muy fluida para obtener resultados en algún lugar donde pueda verlos.

Primero necesitas instalar el fregadero Trace de Serilog. Una vez instalado, necesita configurar el registrador de esta manera:

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .CreateLogger();

(Puede establecer un nivel mínimo diferente o establecerlo en un valor de configuración o en cualquiera de las funciones normales de Serilog. También puede configurar el registrador de Trace en un nivel específico para anular las configuraciones, o como quiera hacerlo).

Luego simplemente registra los mensajes normalmente y se muestran en la ventana de resultados:

Logger.Information("Did stuff!");

Esto no parece ser tan importante, así que permítame explicarle algunas ventajas adicionales. El más importante para mí fue que podía iniciar sesión simultáneamente en la ventana de resultados y en la consola :

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
    .CreateLogger();

Esto me dio una gran flexibilidad en términos de cómo consumí el resultado, sin tener que duplicar todas mis llamadas a Console.Write con Debug.Write . Al escribir el código, podría ejecutar mi herramienta de línea de comandos en Visual Studio sin temor a perder mi salida cuando salió. Cuando lo había implementado y necesitaba depurar algo (y no tenía Visual Studio disponible), la salida de la consola estaba disponible para mi consumo. Los mismos mensajes también se pueden registrar en un archivo (o cualquier otro tipo de receptor) cuando se ejecuta como una tarea programada.

La conclusión es que usar Serilog para hacer esto hizo que sea realmente fácil volcar los mensajes a una multitud de destinos, asegurando que siempre podría acceder fácilmente a la salida, independientemente de cómo lo ejecuté.

También requiere una configuración y un código muy mínimos.


Imprimir en la ventana de salida de Visual Studio:

Debug.Writeline();

Lo siguiente me funcionó en Visual Studio 2015 :

OutputDebugStringW(L"Write this to Output window in VS14.");

Lea la documentación de OutputDebugStringW here .

Tenga en cuenta que este método solo funciona si está depurando su código ( debug mode )


Para mí, solo el espacio de nombres Trace y no el de depuración funcionó:

System.Diagnostics.Trace.WriteLine("message");

Estoy trabajando en un proyecto de C # en Visual Studio 2010.


Utilizar:

System.Diagnostics.Debug.WriteLine("your message here");

    Debug.WriteLine

es lo que buscas.

Si no, trata de hacer esto:

Herramientas de menú → OpcionesDepuración → deseleccionar Enviar salida a Inmediato .





debugging