Domanda

Quando si fa una console application in Java con Eclipse, vedo che l'uscita sia messo in una casella di testo in IDE stesso, invece di avere una console che spuntano come in Visual Studio.Questo è utile, come anche dopo che il programma è terminato, posso ancora usare bene il testo che è stato scritto in esso, in quanto non vengono cancellati fino a quando ho eseguito di nuovo.È possibile ottenere qualcosa di simile con Visual Studio?Mi sa che invece di fare

System.Console.WriteLine(str);

Posso fare

System.Diagnostics.Debug.WriteLine(str);

ma non è proprio la stessa cosa, come si ottiene un sacco di "spazzatura" nella finestra di Output, come tutti i caricata di simboli e così via.

Ancora meglio, è possibile avere tutto fatto in IDE stesso, quando si esegue l'applicazione, invece di avere la console in esecuzione?

È stato utile?

Soluzione

Negli Strumenti -> Opzioni di Visual Studio Finestra di dialogo -> Debug -.> Verificare il "reindirizzare tutte le finestra di output di testo per la finestra immediata"

Altri suggerimenti

Visual Studio finestra di dialogo Opzioni -> Debug -> Selezionare la casella "reindirizzare tutte le finestra di output di testo per la finestra immediata". Poi vai alle impostazioni di progetto e modificare il tipo da "applicazione console" a "Applicazione Windows". A quel punto Visual Studio non si apre una finestra di console più, e l'output viene reindirizzato alla finestra Output in Visual Studio. Tuttavia, non si può fare nulla "creativo", come la richiesta di ingresso chiave o un testo, o deselezionando la console -. Si otterrà eccezioni di runtime

System.Diagnostics.Trace

A seconda di cosa gli ascoltatori che si attribuiscono, output di analisi può andare alla finestra di debug, la console, un file, database o tutti in una volta. Le possibilità sono letteralmente infinite, come attuare il proprio TraceListener è estremamente semplice.

Assicurarsi che il selezionare la casella " reindirizzare tutto l'output ... " checkbox nella ricerca degli errori impostazione di Windows:

assicurarsi che il controllo "** reindirizzare tutto l

Si potrebbe creare un'applicazione wrapper che si esegue invece di eseguire direttamente il vostro vero e proprio app. L'applicazione involucro può ascoltare stdout e reindirizzare tutto da tracciare. Quindi modificare le impostazioni di esecuzione per lanciare il vostro involucro e passare il percorso alla reale applicazione da eseguire.

Si potrebbe anche avere l'involucro auto-attaccare il debugger al nuovo processo se un debugger è collegato al involucro.

So che questo è solo un altro risposta, ma ho pensato di scrivere qualcosa per i nuovi sviluppatori web, che potrebbe ottenere confuso circa il "Change ad un Applicazione Windows" parte, perché penso che per impostazione predefinita un'applicazione MVC in visual Studio 2013 il default è un uscita Tipo di Libreria di classi.

My Web Application per default è impostato come un tipo di output di "Libreria di classi." Non c'è bisogno di cambiare la situazione. Tutto quello che dovevo fare era seguire i consigli di andare a Strumenti> Opzioni> Debugging> reindirizzare tutto il testo finestra di output per la finestra immediata. Ho quindi utilizzato il suggerimento System.Diagnostics.Trace da Joel Coehoorn sopra.

Una soluzione semplice che funziona per me, lavorare con la console di capacità(ReadKey, Stringa di Formato e arg ecc) e per vedere e salvare l'output:

Scrivo TextWriter che scrivere Console e per Trace e sostituire il Console.Out con essa.

se si utilizza la finestra di Dialogo -> Debug -> Controllare il "Reindirizzare l'Output di Testo della Finestra per la Finestra Immediata" si ottiene nella Finestra Immediata e piuttosto pulito.

il mio codice:in avvio del mio codice:

   Console.SetOut(new TextHelper());

e la classe:

public class TextHelper : TextWriter
    {
        TextWriter console;

        public TextHelper() {
            console = Console.Out;
        }

        public override Encoding Encoding { get { return this.console.Encoding; } }
        public override void WriteLine(string format, params object[] arg)
        {
            string s = string.Format(format, arg);
            WriteLine(s);
        }
        public override void Write(object value)
        {
            console.Write(value);
            System.Diagnostics.Trace.Write(value);
        }

        public override void WriteLine(object value)
        {
            Write(value);
            Write("\n");
        }
        public override void WriteLine(string value)
        {
            console.WriteLine(value);
            System.Diagnostics.Trace.WriteLine(value);

        }

    }

Nota:Sovrascrivere proprio quello che mi serviva quindi, se si scrivere altri tipi è necessario eseguire l'override di più

Al contrario, è possibile raccogliere l'output in un risultato del test.

Non si può fornire l'input, ma si può facilmente fornire diversi test con diversi argomenti della riga di comando, ogni test raccogliendo l'uscita.

Se l'obiettivo è di debug, questo è un modo a basso sforzo di offrire uno scenario di debug ripetibile.

namespace Commandline.Test
{
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public class CommandlineTests
    {
        [TestMethod]
        public void RunNoArguments()
        {
            Commandline.Program.Main(new string[0]);
        }
    }
}

E 'il momento di controllare l'ultima release / s per Visual Studio, gente. La soluzione più suggerito che non ha funzionato per alcuni di voi prima potrebbe funzionare ora.

In Visual Studio 2017 ( rilasciare la versione 15.4.2 e sopra), andando a Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window ha funzionato per me.

Alcune note: 1. Per vedere la finestra immediata, assicurarsi che ci si trova in Debug Modalità. 2. Ci dovrebbe essere ora 3 altri strumenti di debug disponibili a vostra disposizione, vale a dire, Stack di chiamate, punti di interruzione, e finestra di comando, come illustrato di seguito:

entrare descrizione dell'immagine qui

I migliori auguri!

Passaggio 1:Fare clic destro sul Nome del Progetto in Esplora soluzioni, quindi fare il tipo di Output della Finestra dell'Applicazione

Passaggio 2:Debug-->Opzioni..-->Debug (Espandere)-->Generale-->Reindirizzare l'Output di Testo della Finestra per la Finestra Immediata

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top