Ich versuche, eine Nachricht zum Debuggen in das Ausgabefenster zu schreiben. Ich habe nach einer Funktion wie der von Java gesucht system.out.println("")
. Ich habe versucht Debug.Write
, Console.Write
und Trace.Write
. Es gibt keinen Fehler aus, aber es wird auch nichts gedruckt.
Die Optionen "DEBUG-Konstante definieren" und "TRACE-Konstante definieren" sind aktiviert.
Menü Extras → Optionen → Debugging → „Redirect alle Ausgabefenster Text in dem Direkt - Fenster“ Option wird nicht geprüft.
Konfiguration: Aktiv (Debug)
Hinweis: Ich habe ein Projekt mit dem Assistenten als "Windows Forms-Anwendung" erstellt, falls relevant. Ich habe keine Ahnung, wo ich suchen soll.
c#
visual-studio-2010
visual-studio
debugging
previous_developer
quelle
quelle
Debug.WriteLine()
Antworten:
Fügen Sie den
System.Diagnostics
Namespace hinzu, undDebug.WriteLine()
drucken Sie dann schnell eine Nachricht im Ausgabefenster der IDE. Weitere Einzelheiten entnehmen Sie bitte diesen:quelle
Dies schreibt in das Debug-Ausgabefenster:
quelle
Verwenden:
quelle
ist was du suchst.
Wenn nicht, versuchen Sie Folgendes:
Menü Extras → Optionen → Debugging → Deaktivieren Sie die Option Send Ausgabe auf Immediate .
quelle
Tools|Options|Debugging uncheck Send Output to Immediate
Für mich funktionierte nur der Trace- Namespace und nicht der Debug-Namespace:
Ich arbeite in einem C # -Projekt unter Visual Studio 2010.
quelle
Sie suchen vielleicht
oder
quelle
MessageBox.Show()
kann sehr ärgerlich sein, wenn Sie mehrere Werte für Debugging-Zwecke schreiben möchten.MessageBox.Show
schreibt nicht darauf.Der Anruf
schlägt bei der Arbeit mit .NET Core fehl (V 1.0 oder 1.1) .
Wir sollten einen Logger aus erstellen und verwenden
Microsoft.Extensions.Logging
, aber dieses Protokoll wird nur im Popup-Konsolenfenster dotnet.exe angezeigt, nicht im Ausgabefenster von Visual Studio.quelle
Dies erfordert ein Framework von Drittanbietern, nämlich Serilog , aber ich habe es trotzdem als sehr empfunden reibungslose Erfahrung ist, die Ausgabe an einen Ort zu bringen, an dem ich sie sehen kann.
Sie müssen zuerst die Trace-Senke von Serilog installieren . Nach der Installation müssen Sie den Logger wie folgt einrichten:
(Sie können eine andere Mindeststufe oder einen Konfigurationswert oder eine der normalen Serilog-Funktionen festlegen. Sie können den
Trace
Logger auch auf eine bestimmte Stufe einstellen, um Konfigurationen zu überschreiben, oder wie auch immer Sie dies tun möchten.)Dann protokollieren Sie Nachrichten einfach normal und sie werden in Ihrem Ausgabefenster angezeigt:
Dies scheint keine so große Sache zu sein, daher möchte ich einige zusätzliche Vorteile erläutern. Das größte Problem für mich war, dass ich mich gleichzeitig im Ausgabefenster und in der Konsole anmelden konnte :
Dies gab mir große Flexibilität hinsichtlich der Art und Weise, wie ich die Ausgabe verbrauchte, ohne alle meine Anrufe
Console.Write
mit duplizieren zu müssenDebug.Write
. Beim Schreiben des Codes konnte ich mein Befehlszeilentool in Visual Studio ausführen, ohne befürchten zu müssen, dass meine Ausgabe beim Beenden verloren geht. Als ich es bereitgestellt hatte und etwas debuggen musste (und Visual Studio nicht verfügbar hatte), war die Konsolenausgabe für meinen Verbrauch sofort verfügbar. Dieselben Nachrichten können auch in einer Datei (oder einer anderen Art von Senke) protokolliert werden, wenn sie als geplante Aufgabe ausgeführt wird.Unter dem Strich war es mit Serilog sehr einfach, Nachrichten an eine Vielzahl von Zielen zu senden, sodass ich unabhängig von der Ausführung immer problemlos auf die Ausgabe zugreifen konnte.
Es erfordert auch sehr minimale Einrichtung und Code.
quelle
Dies ist keine Antwort auf die ursprüngliche Frage. Da ich diese Frage bei der Suche nach einem Mittel zum interaktiven Speichern von Objektdaten gefunden habe, dachte ich, dass andere davon profitieren könnten, wenn sie diese sehr nützliche Alternative erwähnen.
Ich habe letztendlich das Befehlsfenster verwendet und den
Debug.Print
Befehl eingegeben , wie unten gezeigt. Dies druckte ein Speicherobjekt in einem Format, das als Text kopiert werden kann, was alles ist, was ich wirklich brauchte.quelle
Im Ausgabefenster von Visual Studio drucken:
quelle
In Visual Studio 2015 hat Folgendes für mich funktioniert:
Lesen Sie hier die Dokumentation zu OutputDebugStringW .
Beachten Sie, dass diese Methode nur funktioniert, wenn Sie Ihren Code debuggen (
debug mode
)quelle
Zu Debugging-Zwecken wird der
System.Diagnostics.Debug.Writeline()
Befehl nur dann in die Release-Version Ihres Codes kompiliert, wenn Sie über Debug-Listener verfügen. Es schreibt in alle Trace-Listener, einschließlich des VS-Ausgabefensters, wenn es im Debug-Modus ausgeführt wird.Für eine Konsolenanwendung.
Console.Writeline()
würde funktionieren, aber die Ausgabe würde immer noch in der Release-Version Ihrer Binärdatei generiert.Die Debug-Ausgabe sollte beim Debuggen von Tests auch im normalen Ausgabefenster angezeigt werden. Die Ausgabe von console.writeline funktioniert nicht (befindet sich jedoch im Testausgabefenster.)
quelle