¿Por qué Console.Writeline, Console.Write no funciona en Visual Studio Express?


169

Acabo de abrir una aplicación de consola y escribo

Console.WriteLine("Test");

Pero la ventana de salida no muestra esto. Voy a la ventana de salida con Ctrl + W, O

Pero no aparece nada cuando ejecuto mi programa, ¿estoy loco o no es compatible con Visual Studio 2010 Express?


3
Como Leifdije, desaparece antes de que puedas verlo. UsoConsole.ReadKey()
Xaqron el

Consulte también stackoverflow.com/a/1583569/503688 para obtener un mecanismo para redirigir la salida de la consola a la ventana de salida de depuración.
yoyo

Respuestas:


301

Console.WriteLineescribe su salida en la ventana de la consola abierta por su aplicación (piense en una ventana negra con texto blanco que aparece cuando abre el símbolo del sistema). Intente en su System.Diagnostics.Debug.WriteLinelugar.


26
La salida de depuración aparece en la ventana Salida (Debug => Windows => Salida). El mío no estaba abierto por defecto.
Appulus

1
Si no hay salida en la ventana de la consola, también verifique las propiedades de la aplicación en las opciones de Inicio de la pestaña Depurar para asegurarse de que no tiene ningún argumento de línea de comando que redirija la salida desde la consola.
Chad Miller

Y use una herramienta como technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview) para recibir los mensajes de depuración porque no aparecerán en la consola cmd.
Roger Deep

19

Vaya a las propiedades en su propio proyecto en la Solution Explorerventana y elija el tipo de aplicación y busque Output Type y cambie su valor aConsole Application . Esto hará que la pantalla de la consola además de su formulario. Si cierra la pantalla de la consola, su formulario también se cerrará.

Buena suerte.


¡Alegrame el dia! Puedo recorrer mi consulta LINQ y escribir en la consola ahora, que es una forma rápida y barata de obtener los datos correctos en la refriega.
JustJohn

15

Quizás la consola se está despejando. Tratar:

Console.WriteLine("Test");
Console.ReadLine();

Y con suerte permanecerá allí hasta que presione enter.


15

No se proporcionaron respuestas satisfactorias.

System.Diagnostics.Debug.WriteLine() escribirá mensajes en la ventana Salida: depuración, pero cada proceso bajo el sol arroja tanta basura constantemente en esa ventana, es como encontrar una aguja en un pajar para encontrar SUS mensajes.

Console.WriteLine()no escribe en ninguna ventana en Visual Studio. Supongo que solo escribirá en la consola de la aplicación si su aplicación crea una consola en primer lugar, es decir, si es una aplicación de consola.

¿Por qué las herramientas hacen que la tarea simple de tener el código del lado del servidor de aplicaciones web .cs escriba algunos mensajes de depuración en una ventana que está llena de basura que hace que sea casi imposible encontrar su información?


6

O puede depurar CTRL+F5esto, esto abrirá ConsoleWindow espera después de la última línea ejecutada hasta que presione la tecla.


8
Bueno, eso no es realmente 'depuración', es solo iniciar la aplicación sin adjuntar el depurador. : /
damian

5

Es más que probable porque haya usado la consola en el espacio de nombres. Por ejemplo así:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

Intente eliminarlo del espacio de nombres o use el espacio de nombres completo en su lugar, es decir

   System.Console.Writeline("abc");

1
No tenía ninguna otra consola en mi aplicación, pero agregar me System.ayudó. Gracias.
kolenda

4

La ventana de salida no es la consola. Prueba los métodos enSystem.Diagnostics.Debug


4

En la aplicación Winforms, ambos métodos:

System.Diagnostics.Debug.WriteLine("my string")

y

System.Console.WriteLine("my string")

escribir en la ventana de salida.

En la aplicación AspNetCore, solo System.Diagnostics.Debug.WriteLine("my string")escribe en la ventana de salida.



2

Haga clic derecho en el proyecto en el explorador de soluciones y haga clic en "limpiar".

Ahora corre F5

Asegúrese de que el código sea el siguiente:

Console.WriteLine("TEST");
Console.ReadLine();

1

Me encuentro con un problema similar al ejecutar una Prueba de Unidad. Console.WriteLine()no escribió nada en la ventana VS Output.

Usando System.Diagnostics.Debug.WriteLine()resuelto el problema.


1

Si usa Ctrl-F5 (comenzar sin depurar), dejará la ventana de la consola abierta con el mensaje "Presione cualquier tecla para continuar". Esa es la forma más fácil de evitar que la ventana de la consola se cierre para que pueda ver la salida de la consola.


1

Vaya al menú Depurar y seleccione Opciones y desmarque "Redirigir todo el texto de la ventana de salida a la ventana Inmediato"


0

Console.Writeline() aparece en la salida de depuración (Debug => Windows => Output).


77
No, System.Diagnostics.Debug.WriteLine escribe en Debug => Windows => Salida, pero no Console.WriteLine
Vitalii Korsakov

1
La persona que hace la pregunta está utilizando una aplicación de consola, donde Console.WriteLine () por supuesto escribe en la consola, que es la ventana de la aplicación de color negro, que parece una ventana de DOS. Console.WriteLine () solo escribe en la ventana de salida de depuración, cuando no es una aplicación de consola.
Peter Huber

"Console.WriteLine () solo escribe en la ventana de salida de depuración, cuando no es una aplicación de consola". ¿Por qué?
sydd

0

Si está desarrollando una aplicación de línea de comandos, también puede usarla Console.ReadLine()al final de su código para esperar la pulsación de tecla 'Entrar' antes de cerrar la ventana de la consola para que pueda leer su salida.



0

Solución que encontré:

prensa Ctrl + Alt + I o navegue hasta "Pestaña de depuración" ---> "Windows" ---> "Inmediato".

En su código escriba:

Trace.WriteLine("This is one of the workaround");

0

La ventana de resultados de Visual Studio 2017 haber un menú llamado Mostrar salida , en mi caso ASP.NET Core Servidor Web era la opción de seleccionar con el fin de ver el impreso, me encontré con este problema ya lo tenía configurado para construir por lo No estaba viendo las líneas impresas en tiempo de ejecución.


0

Hay 2 posibles problemas son:

  • En primer lugar, no ha utilizado el using Systemque debería ser antes de escribir el código que usa "Clase de sistema", comoConsole.WriteLine()
  • En segundo lugar, no ha codificado lo que sucede después de que la consola muestra "Prueba"

La posible solución será:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

También es estratégico codificar Console.Write("Press any key to exit...");en la línea que precede al Console.ReadKey();para que el usuario sepa que el programa está finalizando, debe presionar cualquier tecla para salir.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.