Wie erstelle ich ein einfaches Erstellungsskript für Visual Studio über die Befehlszeile?

Ich habe viele Visual Studio-Projektlösungen in mehreren Verzeichnissen (alle mit der Erweiterung .sln) und möchte ein einfaches Stapelskript schreiben, das automatisch alle in der Stapeldatei aufgelisteten Lösungen erstellt.

Ich kann manuell eine Lösung erstellen, indem ich das @ startVisual Studio Command Prompt (Dies ist nur eine Befehlszeileninstanz, bei der der folgende Befehl ausgeführt wird.

"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

Nach dem ich dann das Projekt aufbaue durch Aufruf von:

devenv "path\to\solutionFile\projectSolution1.sln" /build Debug

Dies erstellt das Projekt (vorausgesetzt, das Projekt weist keine Fehler auf) und ich spüle und wiederhole es für jedes Projekt, das ich erstellen möchte.

Jedoc Wenn ich Folgendes in einer Batch-Datei mit dem Namen @ habuild.bat:

"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86  
echo "Starting Build for all Projects with proposed changes" 
echo . 
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause

Das Batch-Skript führt nur die erste Zeile aus und wartet, bis ich @ eingeexit bevor die anderen ausgeführt werden. Mein Verständnis hierfür basiert auf den Recherchen, die ich zu Batch-Dateien und allen StackOverflow-Fragen durchgeführt habe, lautet:cmd ruft tatsächlich eine andere Instanz von sich selbst auf, die @ ausführvcvarsall.bat, um die Build-Umgebung einzurichten.

Dies funktioniert nicht bei der Eingabe vonexit tötet diese Instanz mitdevenv einrichten und die Befehle danach können nicht als @ ausgeführt werddevenv ist kein erkannter Befehl (da der exportierte Pfad nicht mehr existiert)

Zusamenfassen, wie kann dies erreicht werden (Übergabe der restlichen Befehle an die cmd-Instanz mitdevenv Defined) in einer einzelnen Batch-Datei? Ich verstehe, dass dies keine robuste Methode ist (und es gibt viele Tools, die dies tun), Builds aufzurufen, aber ich hoffe nur, ein Batch-Skript zur Automatisierung der manuellen Arbeit beim individuellen Aufrufen dieser Projekte zu haben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage