Console.WriteLine no aparece en la ventana de salida


85

He puesto algunas Console.WriteLinellamadas para probar, pero no aparecen en el cuadro de salida.

public static ArrayList myDeliveries = new ArrayList();

public mainForm(){
    InitializeComponent();
}

private void mainForm_Load(object sender, EventArgs e){

    if (!File.Exists("../../MealDeliveries.txt")){
        MessageBox.Show("File not found!");
        return;
    }

    using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
        //first line is delivery name 
        string strDeliveryName = sr.ReadLine();
        Console.WriteLine("Test content");

        while (strDeliveryName != null){

            //other lines 
            Delivery d = new Delivery(
                strDeliveryName, 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine()
            );

            mainForm.myDeliveries.Add(d);

            //check for further values
            strDeliveryName = sr.ReadLine();
        }
    }

    displayDeliveries();


}


private void displayDeliveries(){

    lstDeliveryDetails.Items.Clear();
    Console.WriteLine("Test content");
    Console.WriteLine(mainForm.myDeliveries.Count);
    foreach (Delivery d in mainForm.myDeliveries){
        lstDeliveryDetails.Items.Add(d.DeliveryName);

    }
}

¿¿Alguien puede ayudar??


Resolvió el problema, escribió el código de manera incorrecta. No se estaba compilando correctamente
sark9012

Respuestas:


56

Si tiene la intención de utilizar esta salida en producción, utilice los miembros de la clase Trace . Esto hace que el código sea portátil, puede conectar diferentes tipos de oyentes y enviarlos a la ventana de la consola, la ventana de depuración, el archivo de registro o cualquier otra cosa que desee.

Si esto es solo un código de depuración temporal que está utilizando para verificar que cierto código se está ejecutando o tiene los valores correctos, entonces use la clase Debug como sugiere Zach .

Si es absolutamente necesario utilizar la consola, puede adjuntar una consola en el Mainmétodo del programa .


109

Consolesalidas a la ventana de la consola y las aplicaciones de Winforms no muestran la ventana de la consola. Debería poder usar System.Diagnostics.Debug.WriteLinepara enviar salida a la ventana de salida en su IDE.

Editar: En lo que respecta al problema, ¿ha verificado mainForm_Loadque realmente está siendo llamado? Puede colocar un punto de interrupción al principio de mainForm_Loadpara ver. Si no se está llamando, sospecho que mainForm_Loadno está conectado al Loadevento.

Además, es más eficiente y, en general, mejor anular en On{EventName}lugar de suscribirse {EventName}desde clases derivadas (en su caso, anular en OnLoadlugar de Load).


5
¿Me gusta esto? System.Diagnostics.Debug.WriteLine ("algunos tetttttttttt23423423423423423ttttttttttttttttttttttt");
sark9012

2
@ Luke: sí, pero puedes Import System.Diagnosticshacerlo mucho más simple. Y prefiero usar la Traceclase para esto.
Joel Coehoorn

2
En la barra de navegación superior de Visual Studio, vaya a Ver> Salida para ver los valores de System.Diagnostics.Debug.WriteLine.
Chad Kuehn

13

Si desea que la Console.WriteLine("example text")salida se muestre en la ventana Salida de depuración, cambie temporalmente el tipo de salida de su aplicación de Aplicación de consola a Aplicación de Windows.

Desde los menús, elija Proyecto + Propiedades y navegue hasta Tipo de salida: menú desplegable, cambie a Aplicación de Windows y luego ejecute su aplicación

Por supuesto, debería volver a cambiarlo para crear una aplicación de consola destinada a ejecutarse fuera del IDE.

(probado con Visual Studio 2008 y 2010, se espera que funcione también en las últimas versiones)


Esta es una mejor manera si está buscando copiar rápidamente los resultados de su aplicación.
Mark Kram

2
¿Por qué Console.Writeline no funciona en una aplicación de consola? Esto suena muy contrario a la intuición.
sydd

^^ Sí, ¿qué? Esto siempre ha funcionado. Y ahora no lo es. Esto se siente como un error en Visual Studio.
Triynko

3

El uso Console.WriteLine( "Test" );puede escribir mensajes de registro en la ventana de salida (menú Ver -> Salida) en Visual Studio para un proyecto de Windows Forms / WPF.

Sin embargo, me encontré con un caso en el que no funcionaba y solo System.Diagnostics.Debug.WriteLine( "Test" );funcionaba. Reinicié Visual Studio y Console.WriteLine()comencé a trabajar nuevamente. Parece ser un error de Visual Studio.


1

Si está desarrollando una aplicación de línea de comandos, también puede usar Console.ReadLine()al final de su código para esperar a que se presione la tecla 'Enter' antes de cerrar la ventana de la consola para que pueda leer su salida. Sin embargo, tanto las respuestas de seguimiento como de depuración publicadas anteriormente son mejores opciones.


1

Intente desmarcar la casilla de verificación "Usar modo de compatibilidad administrada" en

Herramientas => Opciones => Depuración => General

Funcionó para mí.


Tenía esto encendido cuando depuraba un proyecto cpp / cli anterior y aparentemente causa este problema, así como que NLog no inicia sesión en la consola.
Blackey

0

Cuando ocurre un problema en Mac VS 2017 (que enfrenté).

  1. Vaya a Proyecto >> Opciones de "Nombre de su proyecto".
  2. Aparecerá una ventana de opciones
  3. Vaya a EJECUTAR >> opción de menú predeterminada
  4. Marque la opción "Ejecutar en consola externa" VERDADERO y diga Aceptar

Ejecute su código de aplicación ahora.


-1

Hilo antiguo, pero en la consola VS 2015.WriteLine no escribe en la ventana de salida si "Habilitar el proceso de alojamiento de Visual Studio" no está marcado o está deshabilitado en Propiedades del proyecto -> pestaña Depurar


-3

Seleccionar vista >> Salida para abrir la ventana de salida.

En la ventana de salida, puede ver el resultado.


1
Esto no responde a la pregunta. El usuario dice específicamente que está en la ventana SALIDA (y por lo tanto tiene esto seleccionado).
Richard Duerr
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.