Estoy tratando de escribir un mensaje en la ventana de salida para fines de depuración. Busqué una función como la de Java system.out.println("")
. Probé Debug.Write
, Console.Write
y Trace.Write
. No da un error, pero tampoco imprime nada.
Las opciones "Definir constante DEPURACIÓN" y "Definir constante TRACE" están marcadas.
Herramientas de menú → Opciones → Depuración → "Redirigir todo el texto de la ventana de salida a la ventana Inmediato" no está marcada.
Configuración: activa (depuración)
Nota: Creé un proyecto con el asistente como "Aplicación de formularios Windows Forms" si es relevante. No tengo idea de dónde mirar.
c#
visual-studio-2010
visual-studio
debugging
anterior_desarrollador
fuente
fuente
Debug.WriteLine()
Respuestas:
Agregue el
System.Diagnostics
espacio de nombres y luego puede usarDebug.WriteLine()
para imprimir rápidamente un mensaje en la ventana de salida del IDE. Para más detalles, consulte estos:fuente
Esto escribirá en la ventana de salida de depuración:
fuente
Utilizar:
fuente
es lo que estás buscando
Si no, intente hacer esto:
Herramientas del menú → Opciones → Depuración → desmarque Enviar salida a Inmediato .
fuente
Tools|Options|Debugging uncheck Send Output to Immediate
Para mí, solo funcionó el espacio de nombres Trace y no el Debug:
Estoy trabajando en un proyecto de C # en Visual Studio 2010.
fuente
Usted puede estar buscando
o
fuente
MessageBox.Show()
puede ser muy molesto cuando desea escribir múltiples valores para fines de depuración.MessageBox.Show
no escribe en él.La llamada
falla al trabajar con .NET Core (V 1.0 o 1.1).
Se supone que debemos crear y usar un registrador desde
Microsoft.Extensions.Logging
, pero ese registro solo aparece en la ventana de la consola emergente dotnet.exe, no en la ventana Salida de Visual Studio.fuente
Esto requiere un marco 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 verlo.
Primero debe instalar el fregadero Trace de Serilog . Una vez instalado, debe configurar el registrador de esta manera:
(Puede establecer un nivel mínimo diferente o establecerlo en un valor de configuración o cualquiera de las funciones normales de Serilog. También puede establecer el
Trace
registrador en un nivel específico para anular las configuraciones, o como quiera hacer esto).Luego, simplemente registra los mensajes normalmente y aparecen en su ventana de Salida:
Esto no parece ser un gran problema, así que permítanme explicar algunas ventajas adicionales. El más importante para mí fue que podía iniciar sesión simultáneamente en la ventana Salida y en la consola :
Esto me dio una gran flexibilidad en términos de cómo consumí de salida, sin tener que duplicar todas mis llamadas a
Console.Write
conDebug.Write
. Al escribir el código, podía ejecutar mi herramienta de línea de comandos en Visual Studio sin temor a perder mi salida cuando salía. Cuando lo implementé y necesité 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 sumidero) cuando se ejecuta como una tarea programada.La conclusión es que usar Serilog para hacer esto hizo que sea realmente fácil volcar mensajes a una multitud de destinos, asegurando que siempre pueda 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.
fuente
Esta no es una respuesta a la pregunta original. Pero dado que encontré esta pregunta cuando buscaba un medio para descargar interactivamente datos de objetos, pensé que otros podrían beneficiarse al mencionar esta alternativa muy útil.
Finalmente utilicé la ventana de comandos e ingresé el
Debug.Print
comando, como se muestra a continuación. Esto imprimió un objeto de memoria en un formato que se puede copiar como texto, que es todo lo que realmente necesitaba.fuente
Imprima en la ventana de salida de Visual Studio:
fuente
Lo siguiente funcionó para mí en Visual Studio 2015:
Lea la documentación de OutputDebugStringW aquí .
Tenga en cuenta que este método solo funciona si está depurando su código (
debug mode
)fuente
Para fines de depuración, el
System.Diagnostics.Debug.Writeline()
comando no se compilará en la versión de lanzamiento de su código a menos que tenga escuchas de depuración. Escribe a todos los oyentes de rastreo que incluye la ventana de salida VS cuando se ejecuta en modo de depuración.Para una aplicación de consola.
Console.Writeline()
funcionaría pero la salida aún se generaría en la versión de lanzamiento de su binario.La salida de depuración también debe aparecer en la ventana de salida normal al depurar las pruebas; mientras que la salida de console.writeline no (pero se puede encontrar en la ventana de salida de prueba).
fuente