Al hacer una aplicación de consola en Java con Eclipse, veo que la salida se coloca en un cuadro de texto en el propio IDE, en lugar de que aparezca una consola como en Visual Studio. Esto es útil, ya que incluso después de que el programa haya salido, todavía puedo hacer un buen uso del texto que estaba escrito en él, ya que no se borra hasta que lo vuelvo a ejecutar. ¿Es posible lograr algo así con Visual Studio? Yo se que en lugar de hacer
System.Console.WriteLine(str);
puedo hacer
System.Diagnostics.Debug.WriteLine(str);
pero no es exactamente lo mismo, ya que obtiene una gran cantidad de "basura" en la ventana de Salida, como todos los símbolos cargados y demás.
Aún mejor, ¿es posible hacer todo en el propio IDE, cuando ejecuta su aplicación, en lugar de tener la consola en ejecución?
c#
visual-studio
console
elisio devorado
fuente
fuente
Respuestas:
En Herramientas -> Cuadro de diálogo Opciones de Visual Studio -> Depuración -> Marque "Redirigir todo el texto de la ventana de salida a la ventana inmediata".
fuente
En el cuadro de diálogo Opciones de Visual Studio -> Depuración -> Marque "Redirigir todo el texto de la ventana de salida a la ventana inmediata". Luego vaya a la configuración de su proyecto y cambie el tipo de "Aplicación de consola" a "Aplicación de Windows". En ese momento, Visual Studio ya no abre una ventana de consola y la salida se redirige a la ventana de Salida en Visual Studio. Sin embargo, no puede hacer nada "creativo", como solicitar una clave o entrada de texto, o borrar la consola; obtendrá excepciones de tiempo de ejecución.
fuente
Console.ReadKey()
es simplemente ridículo.Output type
de mi aplicación de la Aplicación de Windows a la Consola, la ventana de la consola no se ve cuando ejecuto mi aplicación. Puedo depurar la aplicación y elMain
punto de entrada también está siendo afectado. También revirtí la configuración de la opción mencionada en esta publicación, pero fue en vano. Estoy usando la edición de la comunidad VS 2017. Perdí la ventana de mi consola (sollozos).Utilizar
System.Diagnostics.Trace
Dependiendo de los oyentes que adjunte, la salida de seguimiento puede ir a la ventana de depuración, la consola, un archivo, una base de datos o todo a la vez. Las posibilidades son literalmente infinitas, ya que implementar su propio TraceListener es extremadamente simple.
fuente
Es hora de comprobar las últimas versiones de Visual Studio, amigos. La solución más sugerida que no funcionó para algunos de ustedes antes podría funcionar ahora.
En Visual Studio 2017 ( versión de lanzamiento 15.4.2 y superior), ir
Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window
me ha funcionado.Algunas notas: 1. Para ver la ventana Inmediato, asegúrese de estar en modo Depuración . 2. Ahora debería haber otras 3 herramientas de depuración disponibles a su disposición, a saber, Pila de llamadas, Puntos de interrupción y Ventana de comandos, como se muestra a continuación:
¡Los mejores deseos!
fuente
Puede crear una aplicación contenedora que ejecute en lugar de ejecutar directamente su aplicación real. La aplicación contenedora puede escuchar stdout y redirigir todo a Trace. Luego, cambie la configuración de ejecución para iniciar su contenedor y pasar la ruta a la aplicación real para ejecutar.
También puede hacer que el contenedor adjunte automáticamente el depurador al nuevo proceso si se adjunta un depurador al contenedor.
fuente
Sé que esta es solo otra respuesta, pero pensé en escribir algo para los nuevos desarrolladores web, que podrían confundirse con la parte "Cambiar a una aplicación de Windows", porque creo que, de forma predeterminada, una aplicación MVC en Visual Studio 2013 tiene como valor predeterminado un Tipo de salida de biblioteca de clases.
Mi aplicación web está configurada de forma predeterminada como un tipo de salida de "Biblioteca de clases". No tienes que cambiar eso. Todo lo que tenía que hacer era seguir las sugerencias de ir a Herramientas> Opciones> Depuración> Redirigir todo el texto de la ventana de salida a la ventana inmediata. Luego utilicé la
System.Diagnostics.Trace
sugerencia de Joel Coehoorn anterior.fuente
Una solución simple que funciona para mí, trabajar con la capacidad de la consola (ReadKey, String con formato y arg, etc.) y ver y guardar la salida:
Escribo TextWriter que escribe ay
Console
paraTrace
y reemplaza elConsole.Out
con él.si usa Diálogo -> Depuración -> Marque "Redirigir todo el texto de la ventana de salida a la ventana inmediata", lo obtendrá en la ventana inmediata y bastante limpio.
mi código: al comienzo de mi código:
y la clase:
Nota: anulo justo lo que necesitaba, así que si escribe otros tipos, debería anular más
fuente
con respecto a
System.Diagnostics.Debug
producir una gran cantidad de "basura" en la ventana de salida: puede desactivar eso haciendo clic derecho en la ventana de salida. Por ejemplo, hay un elemento "Mensajes de carga del módulo" que desea deshabilitar y un elemento "Salida del programa" que desea conservar.fuente
Tienes tres posibilidades para hacer esto, pero no es trivial. La idea principal de todos los IDE es que todos son los padres de los procesos secundarios (depuración). En este caso, es posible manipular con entrada, salida y controlador de errores estándar. Por lo tanto, los IDE inician aplicaciones secundarias y las redireccionan a la ventana de salida interna. Conozco una posibilidad más, pero vendrá en el futuro.
fuente
Si necesita la salida de Console.WriteLine, y Redirigir todo el texto de la ventana de salida a la ventana inmediata no funciona y necesita conocer la salida de las pruebas del Explorador de pruebas integrado, utilizando NUnit.Framework, nuestro problema ya está resuelto en VS 2017 :
Ejemplo tomado de C # In Depth por Jon Skeet: Esto produce esta salida en Text Explorer:
Cuando hacemos clic en Salida azul, en Tiempo transcurrido, a la derecha, y produce esto:
La salida estándar es nuestra salida deseada, producida por Console.WriteLine.
Funciona para la consola y para las aplicaciones de Windows Forms en VS 2017, pero solo para la salida generada para Test Explorer en Debug o Run; de todos modos, esta es mi principal necesidad de la salida Console.WriteLine.
fuente
En su lugar, puede recopilar la salida en un resultado de prueba.
No puede proporcionar entrada, pero puede proporcionar fácilmente varias pruebas con diferentes argumentos de línea de comando, cada prueba recopila la salida.
Si su objetivo es depurar, esta es una forma de bajo esfuerzo para ofrecer un escenario de depuración repetible.
fuente
Paso 1: haga clic con el botón derecho en el nombre del proyecto en el Explorador de soluciones y luego haga que el tipo de salida sea Aplicación de ventana
Paso 2: Depurar -> Opciones ..--> Depurar (expandir) -> General -> Redirigir todo el texto de la ventana de salida a la ventana inmediata
fuente