Perché Console.Writeline, Console.Write non funziona in Visual Studio Express?


169

Apro solo un'applicazione console e scrivo

Console.WriteLine("Test");

Ma la finestra di output non mostra questo. Vado alla finestra di output con Ctrl + W, O

Ma non viene visualizzato nulla quando eseguo il mio programma, sono pazzo o non è supportato in Visual Studio 2010 Express?


3
Come Leifdetto, scompare prima che tu possa vederlo. UsaConsole.ReadKey()
Xaqron il

Vedere anche stackoverflow.com/a/1583569/503688 per un meccanismo per reindirizzare l'output della console nella finestra dell'output di debug.
yoyo

Risposte:


301

Console.WriteLinescrive l'output nella finestra della console aperta dall'applicazione (pensa a una finestra nera con testo bianco che appare quando apri il Prompt dei comandi). Prova System.Diagnostics.Debug.WriteLineinvece.


26
L'output di debug viene visualizzato nella finestra Output (Debug => Windows => Output). Il mio non era aperto per impostazione predefinita.
Appulus

1
Se non ci sono output nella finestra della console, controlla anche le proprietà dell'applicazione nella scheda Debug Opzioni di avvio per assicurarti di non avere argomenti da riga di comando che reindirizzino l'output dalla console.
Chad Miller,

E utilizzare uno strumento come technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview) per ricevere i messaggi di debug perché non verranno visualizzati sulla console cmd.
Roger Deep,

19

Vai alle proprietà nel tuo progetto nella Solution Explorerfinestra e scegli il tipo di applicazione e cerca Output Type e modifica il valore in Console Application. Questo renderà lo schermo della console oltre al tuo modulo. Se chiudi la schermata della console, anche il modulo verrà chiuso.

In bocca al lupo.


Fai la mia giornata! Posso scorrere la mia query LINQ e scrivere sulla console ora, che è un modo rapido ed economico per ottenere i dati corretti nella mischia.
JustJohn,

15

Forse la console si sta schiarendo. Provare:

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

E si spera che rimanga lì fino a quando premi Invio.


15

Nessuna risposta soddisfacente fornita.

System.Diagnostics.Debug.WriteLine() scriverà messaggi nell'output: finestra di debug, ma così tanta merda viene costantemente scaricata in quella finestra da ogni processo sotto il sole, è come trovare un ago in un pagliaio per trovare i TUOI messaggi.

Console.WriteLine()non scrive in nessuna finestra in Visual Studio. Immagino che scriverà sulla console dell'applicazione solo se l'applicazione crea una console in primo luogo, ovvero se si tratta di un'applicazione console.

Perché gli strumenti rendono il semplice compito di avere il codice .cs lato lato server delle applicazioni web scrivere alcuni messaggi di debug in una finestra che è sommersa da schifezze che rendono quasi impossibile trovare le tue informazioni?


6

Oppure è possibile eseguire il debug in CTRL+F5questo modo si aprirà ConsoleWindow attende dopo l'ultima riga eseguita fino a quando non si preme il tasto.


8
Bene, questo non è in realtà un "debug", è solo l'avvio dell'applicazione senza collegare il debugger. : /
damian

5

È più che probabile perché hai usato Console nello spazio dei nomi. Ad esempio in questo modo:

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

Prova a rimuoverlo dallo spazio dei nomi o usa invece lo spazio dei nomi completo, ad es

   System.Console.Writeline("abc");

1
Non avevo un'altra console nella mia app, ma l'aggiunta ha System.aiutato. Grazie.
Kolenda,

4

La finestra di output non è la console. Prova i metodi inSystem.Diagnostics.Debug


4

Nell'app Winforms, entrambi i metodi:

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

e

System.Console.WriteLine("my string")

scrivere nella finestra di output.

Nell'app AspNetCore, System.Diagnostics.Debug.WriteLine("my string")scrive solo nella finestra di output.


3

Prova ctrl + F5, manterrà lo schermo fino a quando non premi un tasto qualsiasi. Saluti


2

Fare clic con il tasto destro sul progetto in Esplora soluzioni e fare clic su "Pulisci".

Adesso corri F5

Assicurati che il codice sia il seguente:

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

1

Ho riscontrato un problema simile durante l'esecuzione di un test unitario. Console.WriteLine()non ha scritto nulla nella finestra di output VS.

Utilizzando System.Diagnostics.Debug.WriteLine()risolto il problema.


1

Se usi Ctrl-F5 (avvia senza debug), la finestra della console verrà aperta con un messaggio "Premi un tasto qualsiasi per continuare". Questo è il modo più semplice per impedire la chiusura della finestra della console in modo da poter vedere l'output della console.


1

Vai al menu Debug e seleziona Opzioni e deseleziona "Reindirizza tutto il testo della finestra di output su Finestra immediata"


0

Console.Writeline() viene visualizzato nell'output di debug (Debug => Windows => Output).


7
No, System.Diagnostics.Debug.WriteLine scrive su Debug => Windows => Output, ma non Console.WriteLine
Vitalii Korsakov

1
La persona che pone la domanda sta usando un'applicazione Console, dove Console.WriteLine () ovviamente scrive sulla Console, che è la finestra dell'applicazione di colore nero, simile a una finestra DOS. Console.WriteLine () scrive solo nella finestra di output del debug, quando non è un'applicazione console.
Peter Huber,

"Console.WriteLine () scrive solo nella finestra di output del debug, quando non è un'applicazione console." Perché?
sydd,

0

Se stai sviluppando un'applicazione da riga di comando, puoi anche utilizzare Console.ReadLine()alla fine del codice per attendere la pressione del tasto 'Invio' prima di chiudere la finestra della console in modo da poter leggere l'output.



0

Soluzione alternativa ho trovato:

Premere Ctrl + Alt + Io navigare fino a "Scheda Debug" ---> "Windows" ---> "Immediatamente".

Nel tuo codice scrivi:

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

0

La finestra Output di Visual Studio 2017 ha un menu chiamato Mostra output da , nel mio caso ASP.NET Core Web Server era l'opzione da selezionare per vedere la stampa, mi sono imbattuto in questo problema poiché l'avevo impostato su Build così Non stavo vedendo le linee stampate in fase di esecuzione.


0

Ci sono 2 possibili problemi sono:

  • In primo luogo, non è stato utilizzato ciò using Systemche dovrebbe essere prima di scrivere il codice che utilizza "Classe di sistema", comeConsole.WriteLine()
  • In secondo luogo, non hai codificato ciò che accade dopo che la console visualizza "Test"

La possibile soluzione sarà:

using System;

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

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

È anche strategico codificare Console.Write("Press any key to exit...");sulla riga che precede il Console.ReadKey();per rendere l'utente consapevole che il programma sta finendo, deve premere un tasto qualsiasi per uscire.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.