2010-10-08 12 views
62

Desidero automatizzare il processo di compilazione per le mie soluzioni C#. Come posso creare soluzioni C# dalla riga di comando in modo da non dover gestire manualmente le dipendenze?Creazione di soluzioni C# dalla riga di comando con Visual Studio 2010

+0

Cosa ti fa pensare che le dipendenze non contano quando si genera sulla linea di cmd? È un manuale molto più dannoso, dovrai digitare il nome completo del percorso all'assembly dipendente. –

+0

Non sono sicuro che tu mi abbia capito correttamente. Tutto ciò che voglio è semplicemente creare una soluzione C# dalla riga di comando in modo tale che (quasi) sia necessario solo il percorso del file della soluzione e MSBuild sembra essere la strada da percorrere. – alexfr

risposta

38

se si apre un prompt dei comandi di Visual Studio dal menu Start - allora è possibile chiamare MSBuild e dare che o il file .sln o uno specifico file .csproj per creare quello che ti serve

in alternativa puoi creare un file MSBuild personalizzato che si occupa delle attività.

un suggerimento: assicurarsi che la versione di MSBuild che si utilizza è applicabile alla versione quadro o strumenti target del progetto

cioè se si cerca di costruire una soluzione che è stato creato in VS2010 con msbuild 3.5 allora non riconoscerà il set di strumenti 4.0 del progetto

+0

Ho dovuto eseguire 'vcvarsall.bat' prima che potessi ottenere' msbuild' per eseguire da qualsiasi vecchia istanza cli, una volta che l'ho fatto funziona come un fascino! –

+2

Si potrebbe invece aprire il "Prompt dei comandi dello sviluppatore": Tutti i programmi -> Microsoft Visual Studio -> Visual Studio Tools. – kroiz

17

msbuild YourSolution.sln

+3

Come fa sapere se eseguire una compilazione di debug o release? – Qwertie

+0

"msbuild /?" per gli argomenti della riga di comando incluso debug/release –

67

Per le soluzioni è possibile utilizzare:

devenv /build Release Solution.sln

o

devenv /build Debug Solution.sln

+9

Ciò richiede che Visual Studio sia installato sulla macchina che esegue la generazione. msbuild è disponibile con .net framework. –

+1

+1. Per un motivo sconosciuto, msbuild non funziona su un nuovissimo file .sln generato con 'qmake -recursive -tp vc my.sln'. Ho dovuto aprire la soluzione con VS per far funzionare msbuild. Con devenv, posso automatizzare il processo qmake e build. Grazie –

22

I file di progetto e di soluzione di Visual Studio sono anche file di costruzione MSBuild.

Si può semplicemente eseguire MSBuild contro il file di soluzione/progetto e costruirà:

<path to>msbuild.exe <path to>solution/project file 
Problemi correlati