2010-01-15 2 views
14

Ich habe versucht, <Message> Elemente zu Aufgaben in einer VS-Projektdatei hinzuzufügen, um den Buildprozess zu debuggen. Die Elemente haben jedoch keine Auswirkung auf den Text, der in das VS-Ausgabefenster geschrieben wird.Wie Ausgaben von Msbuild in das VS-Ausgabefenster ausgegeben werden?

Gibt es eine Möglichkeit, Nachrichten in das VS-Ausgabefenster zu schreiben, indem Markup zum zu erstellenden Projekt hinzugefügt wird?

Antwort

28

Vielleicht this kann helfen?

Unter Extras - Optionen - Projekten und Lösungen - Erstellen und Ausführen, gibt es das MSBuild-Projekt Build-Ausgabe Ausführlichkeit Kombinationsfeld. Dies steuert, wie viele Informationen im Ausgabefenster angezeigt werden sollen.

+2

Danke, das ist es. Auch mit Wichtigkeit = "hoch" werden Nachrichten standardmäßig nicht in das Ausgabefenster geschrieben. – mackenir

+0

Es sei auch darauf hingewiesen, dass Debug.WriteLines ignoriert wird, wenn Ihre benutzerdefinierte Task-DLL mit der Release-Konfiguration erstellt wird. Sie müssen Debug erstellen, damit dies funktioniert. Ich habe gerade bestätigt, dass –

-1

Ich denke, das sollte funktionieren (es verwendet für mich): <Message Text="blah" />

(Und natürlich von Code, System.Diagnostics.Debug.WriteLine ("blah");)

+0

Debug.WriteLine() Ausgaben auf die Debug-Konsole bei * Laufzeit * –

+0

Deshalb habe ich "von Code" oben, richtig? Noch mehr, nichts hindert Sie daran, eine benutzerdefinierte msbuild-Erweiterung zu schreiben und System.Diagnostics.Debug.WriteLine() zu verwenden, oder? – Ariel

0

Das ist eine alte Frage, ich bin gerade hergekommen, weil ich das Gleiche gebraucht habe und es einfach versucht habe.

in Ihrem Projekt Eigenschaften-> Buildereignisse man so etwas in der Post-Build-Ereignisse Befehlszeile hinzufügen:

echo This is my message, no quotes required!

Und dann werden Sie in der Lage sein zu sehen, es in der Ausgabe nach ein erfolgreicher Build (falls konfiguriert, um bei einem erfolgreichen Build ausgeführt zu werden, was in meinem Fall der Fall ist).