2013-07-23 12 views
14

Ich möchte eine Batch-Datei erstellen, um die Builds von meinem VS-Projekt in klicken. Alle Tage, die ich tun, um die folgenden Schritte aus:Wie 'Msbuild' Befehl aus einer Batch-Datei auszuführen

  1. Öffnet ein cmd-Konsole als ADMINISTRADOR
  2. Gehen Sie auf den Pfad meines Projekts/Lösung (mit der CD, .., CD-Befehle)
  3. Schreiben Sie die folgende Befehl, um den Build:

    msbuild MySolution.sln/p: Konfiguration = debug

Wie bereits erwähnt, möchte ich diesen ganzen Prozess in einem einzigen Klick machen. Also versuche ich eine .bat-Datei dafür zu erstellen.

Dies ist der Code meiner Batch-Datei ist:

set location="C:\myPath\..\MyFolderSolution" 
set pathMSBuild = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" 

@echo off 
cls 

call %pathMSBuild% 
cd %location% 
msbuild.exe "lucre.sln" /p:configuration=debug 
pause 

aber wenn ich versuche, die Batch-Datei, die ich die folgende Fehlermeldung auszuführen: ‚msbuild‘ als interner oder externer Befehl nicht erkannt wird, ausführbares Programm oder Batch-Datei.

Jeder Hinweis oder Hilfe wissen, ob es möglich ist, und wenn ja, wie zu tun, wird es

Grüße sehr schätzen!

Antwort

15

Sie sind nicht im richtigen Verzeichnis, müssen Sie in das Verzeichnis cd dass msbuild in ist dies versuchen.

set pathMSBuild="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\" 
@echo off 
cls 
cd %pathMSBuild% 
msbuild.exe "C:\myPath\..\MyFolderSolution\lucre.sln" /p:configuration=debug 
pause 

Oder Sie könnten das msbuild Verzeichnis Ihrem Pfad hinzufügen, und überspringen die Linien mit Set und CD.

+0

Hallo Steve. Es funktioniert OK ;-) Wie du erwähntest, wurde ich auf einen anderen Ort hingewiesen. Vielen Dank – MikePR

+1

Wahrscheinlich besser,% WinDir% anstelle von 'C: \ Windows \' – knocte

+0

zu verwenden Verwenden Sie keine Leerzeichen zwischen dem Namen und Wert; 'SET foo = bar' funktioniert nicht, aber' SET foo = bar' funktioniert (Ich kann den Beitrag nicht bearbeiten, da "Bearbeitungen mindestens 6 Zeichen lang sein müssen"). –

2

Wenn Sie nicht auf CD in das Verzeichnis msbuild Installation möchten, können Sie auch die Visual Studio-Umgebungsvariablen wie folgt laden:

call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 

(Siehe auch diese Question)

2

Beide Antworten verwenden hardcoded Wege, die möglicherweise nicht immer funktionieren. diese Verwenden statt:

@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat" 

ändern VS100 zu einer anderen Version, können Sie auch diese Zeilen nacheinander setzen zu viele Versionen von VS simulteneously zu unterstützen:

@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat" 
@if exist "%VS140COMNTOOLS%vsvars32.bat" call "%VS140COMNTOOLS%vsvars32.bat" 

Wenn auf diese Weise getan, die Sie nicht länger abhängig von einer bestimmten Version von .Net Framework oder Visual Studio

+0

Das sind nützliche Variablen, danke. In demselben Verzeichnis scheint die Batch-Datei 'VsMSBuildCmd.bat' spezifischer dazu bestimmt zu sein, die Umgebung zum Aufrufen von' MSBuild.exe' zu ​​erzeugen –

1

Sie können auch das Verzeichnis, in dem sich MSBuild.exe befindet, der PATH-Umgebungsvariablen hinzufügen, damit Sie msbuild überall aufrufen können.

So in der Fledermaus-Datei kann es so etwas wie dieses:

cd C:\PathToSoultion\ 
msbuild TheSolutionName.sln /p:configuration=debug 
pause 

Ich weiß, dass die Frage schon Jahre entfernt, aber ich hoffe, dass dies jemand helfen könnte.

Verwandte Themen