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
risposta
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
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! –
Si potrebbe invece aprire il "Prompt dei comandi dello sviluppatore": Tutti i programmi -> Microsoft Visual Studio -> Visual Studio Tools. – kroiz
msbuild YourSolution.sln
Come fa sapere se eseguire una compilazione di debug o release? – Qwertie
"msbuild /?" per gli argomenti della riga di comando incluso debug/release –
Per le soluzioni è possibile utilizzare:
devenv /build Release Solution.sln
o
devenv /build Debug Solution.sln
Ciò richiede che Visual Studio sia installato sulla macchina che esegue la generazione. msbuild è disponibile con .net framework. –
+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 –
Personalmente sono un grande fan di Rake (yeah - I ti ho sentito quando hai detto la tua soluzione C#)
Check it out: http://www.lostechies.com/blogs/derickbailey/archive/2009/09/23/albacore-a-suite-of-rake-build-tasks-for-net-solutions.aspx
Divertiti - ha reso la vita molto migliore per me!
è possibile utilizzare il C# (csc.exe
) compilatore direttamente:
Penso che csc.exe funzioni solo su file .cs ma non su file .sln – Korayem
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
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. –
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