Domanda

Come trasformi una build di Visual Studio che eseguiresti nell'IDE in uno script che puoi eseguire dalla riga di comando?

È stato utile?

Soluzione

Con VS2008 puoi fare questo:

devenv solution.sln /build configuration

Altri suggerimenti

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

Molti parametri della riga di comando, ma il più semplice è solo:

msbuild.exe yoursln.sln

Il modo più semplice:passare alla directory contenente la soluzione o il file di progetto ed eseguire msbuild (supponendo che tu abbia Visual Studio 2005 o successivo).

Modi più flessibili:

  • Leggere su Il riferimento MSBuild.Ci sono tonnellate di personalizzazione, soprattutto una volta che hai installato il Progetto di attività della community MSBuild.
  • Utilizzo NAnt.Esiste più a lungo di MSBuild e ha più supporto per la comunità, ma richiede di avviare un file di progetto da zero, piuttosto che estendere quello creato da Visual Studio esistente.

NAnt E MSBuild sono gli strumenti più popolari per automatizzare la creazione .NETTO, e puoi trovare una discussione sui pro/contro di ciascuno nella domanda Stack Overflow Il miglior strumento di creazione .NET.

Esamina lo strumento di creazione NAnt O MSBuild.Credo che MSBuild sia lo strumento di creazione per Visual Studio 2005 e versioni successive.Tuttavia, sono un fan di NAnt...

Ecco lo script che sto utilizzando per automatizzare completamente la creazione da riga di comando delle configurazioni x86 E x64 per la stessa soluzione tramite script batch.

Si basa su DevEnv.exe poiché funziona se nella build è presente un progetto di installazione (msbuild non supporta la creazione di progetti di installazione).

Presumo che la tua configurazione sia Windows 7 a 32 bit con configurazione di Visual Studio 2010 utilizzando il compilatore nativo x86 e il compilatore incrociato x64.Se utilizzi Windows a 64 bit potrebbe essere necessario modificare x86_amd64 A amd64 nello script batch a seconda della configurazione.Ciò presuppone che Visual Studio sia installato in File di programma e la tua soluzione si trova in D:\MySoln

Crea un file chiamato buildall.bat e aggiungi questo:

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

Ora crea altri 2 script batch:

crosscompilex86.bat per creare la versione di rilascio di una build x86 e includerla

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 per creare la versione di rilascio della build x64 e includerla

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%

Ora posiziona tutti e 3 i file batch nella cartella della soluzione insieme a MySoln.sln.Puoi creare versioni sia x86 che x64 creando un collegamento sul desktop che esegue i seguenti comandi:

  • Costruisci tutto -> D:\MySoln\buildall.bat
  • Compila solo la versione x86 -> D:\MySoln\buildall.bat x86
  • Compila solo la versione x64 -> D:\MySoln\buildall.bat x64

Se utilizzi un'altra configurazione come AnyCPU ecc. dovrai personalizzare di conseguenza gli script sopra.

Dai un'occhiata a UppercuT.Ha un ottimo rapporto qualità-prezzo e fa quello che stai cercando e molto altro ancora.

UppercuT utilizza NAnt per creare ed è il Build Framework incredibilmente facile da usare.

Costruzioni automatizzate facili quanto (1) nome della soluzione, (2) percorso di controllo del codice sorgente, (3) nome dell'azienda per la maggior parte dei progetti!

http://projectuppercut.org/

Alcune buone spiegazioni qui: UppercuT

Ecco il mio file batch utilizzando msbuild per VS 2010 Configurazione di debug:

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

Come di Visual Studio 2005, tutti i file di progetto (almeno per i progetti basati su .NET) sono effettivi MSBuild files, quindi puoi chiamare MSBuild sulla riga di comando e passargli il file di progetto.

La conclusione è che è necessario utilizzare un "linguaggio di scripting build" come NAnt o MSBuild (ce ne sono altri, ma questi sono quelli tradizionali in questo momento) se vuoi avere un controllo reale sul tuo processo di creazione.

Ho dovuto farlo per un progetto C++ in Visual Studio 2003 quindi non so quanto sia rilevante per la versione successiva di Visual Studio:

Nella directory in cui viene creato il tuo eseguibile ci sarà un file BuildLog.htm file.Apri quel file nel tuo browser e poi per ogni sezione come:

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"

crea un file .rsp con il contenuto tra parentesi quadre (ma escludendo le parentesi quadre) e chiamalo come preferisci.Mi sembra di ricordare di aver avuto problemi con i percorsi assoluti, quindi potresti dover assicurarti che tutti i percorsi siano relativi.

Quindi nel tuo script di build aggiungi la riga di comando da BuildLog.htm file ma con il tuo nome file .rsp:

cl.exe @autobuild01.rsp /nologo

(nota che ci sarà anche una sezione link.exe oltre a cl.exe)

Un modo più semplice è modificare la configurazione di Progetti e soluzioni VS 2015:Vai alla scheda Strumenti -> Opzioni -> Progetti e soluzioni -> Compila ed esegui -> All'esecuzione, quando i progetti non sono aggiornati (scegli Compila sempre).ECCO!

Ora il tuo IDE creerà automaticamente il tuo progetto quando lo esegui (F5).Spero che questo aiuti, qualsiasi feedback è il benvenuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top