Frage

Wie wandeln Sie einen Visual Studio-Build, den Sie in der IDE ausführen würden, in ein Skript um, das Sie über die Befehlszeile ausführen können?

War es hilfreich?

Lösung

Mit VS2008 können Sie Folgendes tun:

devenv solution.sln /build configuration

Andere Tipps

\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

Viele Befehlszeilenparameter, aber der einfachste ist einfach:

msbuild.exe yoursln.sln

Einfachster Weg:Navigieren Sie zu dem Verzeichnis, das die Projektmappe oder Projektdatei enthält, und führen Sie den Vorgang aus msbuild (vorausgesetzt, Sie haben Visual Studio 2005 oder neuer).

Flexiblere Möglichkeiten:

  • Lesen Sie weiter Die MSBUILD -Referenz.Es gibt unzählige Anpassungen, insbesondere wenn Sie die installiert haben MSBuild-Community-Aufgabenprojekt.
  • Verwenden NAnt.Es existierte länger als MSBuild und bietet mehr Community-Unterstützung. Sie müssen jedoch eine Projektdatei von Grund auf neu starten, anstatt die vorhandene, von Visual Studio erstellte Visual Studio zu erweitern.

NAnt Und MSBuild sind die beliebtesten Tools zur Automatisierung Ihres Build-Ins .NETZ, und dort finden Sie eine Diskussion der Vor- und Nachteile der einzelnen Elemente in der Frage zum Stapelüberlauf Bestes .NET-Build-Tool.

Schauen Sie sich das Build-Tool an NAnt oder MSBuild.Ich glaube, dass MSBuild das Build-Tool für Visual Studio 2005 und höher ist.Ich bin allerdings ein Fan von NAnt...

Hier ist das Skript, das ich verwende, um die Befehlszeilenerstellung von x86- UND x64-Konfigurationen für dieselbe Lösung durch Batch-Skripte vollständig zu automatisieren.

Dies basiert auf DevEnv.exe, da es funktioniert, wenn Ihr Build ein Setup-Projekt enthält (msbuild unterstützt das Erstellen von Setup-Projekten nicht).

Ich gehe davon aus, dass es sich bei Ihrem Setup um ein 32-Bit-Windows 7 mit Visual Studio 2010-Setup unter Verwendung des x86-nativen Compilers und des x64-Cross-Compilers handelt.Wenn Sie 64-Bit-Windows verwenden, müssen Sie möglicherweise eine Änderung vornehmen x86_amd64 Zu amd64 im Batch-Skript, abhängig von Ihrem Setup.Dies setzt voraus, dass Visual Studio installiert ist Programmdateien und Ihre Lösung befindet sich in D:\MySoln

Erstellen Sie eine Datei mit dem Namen buildall.bat und füge dies hinzu:

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

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

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause

Erstellen Sie nun zwei weitere Batch-Skripte:

crosscompilex86.bat um die Release-Version eines x86-Builds zu erstellen und diese einzubinden

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

crosscompilex64.bat um die Release-Version des x64-Builds zu erstellen und diese einzubinden

devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

Legen Sie nun alle drei Batchdateien zusammen mit MySoln.sln in Ihrem Lösungsordner ab.Sie können sowohl x86- als auch x64-Release-Versionen erstellen, indem Sie auf Ihrem Desktop eine Verknüpfung erstellen, die die folgenden Befehle ausführt:

  • Alles erstellen -> D:\MySoln\buildall.bat
  • Nur x86-Release erstellen -> D:\MySoln\buildall.bat x86
  • Nur x64-Release erstellen -> D:\MySoln\buildall.bat x64

Wenn Sie eine andere Konfiguration wie AnyCPU usw. verwenden, müssen Sie die oben genannten Skripte entsprechend anpassen.

Schauen Sie sich UppercuT an.Es bietet ein gutes Preis-Leistungs-Verhältnis und erfüllt das, was Sie suchen, und noch viel mehr.

UppercuT verwendet NAnt zum Erstellen und es ist das wahnsinnig einfach zu verwendende Build Framework.

Automatisierte Builds sind für die meisten Projekte so einfach wie (1) Lösungsname, (2) Quellcodeverwaltungspfad, (3) Firmenname!

http://projectuppercut.org/

Einige gute Erklärungen hier: UppercuT

Hier ist meine Batch-Datei mit msbuild für VS 2010 Debug-Konfiguration:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo

Ab Visual Studio 2005, alle Projektdateien (zumindest für .NET-basierte Projekte) sind aktuell MSBuild Dateien, sodass Sie MSBuild in der Befehlszeile aufrufen und ihm die Projektdatei übergeben können.

Die Quintessenz ist, dass Sie eine „Build-Skriptsprache“ verwenden müssen NAnt oder MSBuild (es gibt noch andere, aber diese sind derzeit die Mainstream-Versionen), wenn Sie wirkliche Kontrolle über Ihren Build-Prozess haben möchten.

Ich musste dies für ein C++-Projekt in Visual Studio tun 2003 Daher weiß ich nicht, wie relevant dies für eine spätere Version von Visual Studio ist:

In dem Verzeichnis, in dem Ihre ausführbare Datei erstellt wird, befindet sich eine BuildLog.htm Datei.Öffnen Sie diese Datei in Ihrem Browser und dann für jeden Abschnitt wie:

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"

Erstellen Sie eine .rsp-Datei mit dem Inhalt zwischen den eckigen Klammern (aber ohne die eckigen Klammern) und nennen Sie sie wie Sie möchten.Ich erinnere mich an Probleme mit absoluten Pfaden, sodass Sie möglicherweise sicherstellen müssen, dass alle Pfade relativ sind.

Fügen Sie dann in Ihrem Build-Skript die Befehlszeile aus dem hinzu BuildLog.htm Datei, aber mit Ihrem .rsp-Dateinamen:

cl.exe @autobuild01.rsp /nologo

(Beachten Sie, dass es neben cl.exe auch einen Abschnitt „link.exe“ geben wird.)

Eine einfachere Möglichkeit besteht darin, die Konfiguration von VS 2015 Projects & Solutions zu ändern:Gehen Sie zur Registerkarte „Extras“ -> „Optionen“ -> „Projekte und Lösungen“ -> „Erstellen und ausführen“ -> „Bei Ausführung“, wenn Projekte veraltet sind (wählen Sie „Immer erstellen“).Voila!

Jetzt erstellt Ihre IDE Ihr Projekt automatisch, wenn Sie es ausführen (F5).Ich hoffe, das hilft. Feedback ist willkommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top