2012-04-19 18 views
25

Ho un'applicazione .net basata su .net framework 3.5, Sto cercando di creare questa applicazione sul server CI Jenkins. Ho aggiunto il plugin MSBuild e ho aggiunto il percorso al file .exe delle versioni 2.0, 3.5 e 4.0 di MSBuild. Ma i miei processi di costruzione stanno fallendo mostrando il seguente messaggio di errore.build .net applicazione in Jenkins utilizzando MSBuild

Path To MSBuild.exe: msbuild.exe 
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% 
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% 
'msbuild.exe' is not recognized as an internal or external command, 
operable program or batch file. 
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure 
Finished: FAILURE 

Qualcuno potrebbe aiutarmi .. ??

risposta

66

Per far funzionare il plugin MSBuild, è necessario configurare il plug-in nella schermata di gestione di Jenkins.

NOTA: nelle versioni più recenti Jenkins a trovare la configurazione MSBuild nel Configuration Tool globale:

enter image description here


Jenkins MSBuild Installation Configuration

Annotare il campo "Nome", dove ho chiamato questa particolare configurazione v4.0.30319. Potresti chiamarlo come preferisci, ma idealmente il nome si riferirà in qualche modo alla versione.

Avrete bisogno di fare riferimento a questo nome più avanti nel PROGETTO Jenkins che non funziona.

Nota: l'avviso giallo indica che il campo Percorso per MSBuild deve essere popolato con un nome di directory anziché con un nome di file. In pratica è necessario inserire anche il nome del file (ad es. Msbuild.exe) o il passo di creazione fallirà.

Nel progetto di Jenkins che non funziona, andare al passo di costruzione di MSBuild.

Il primo campo nella fase di creazione è "Versione di MSBuild". Se hai creato il passo di costruzione prima di configurare qualsiasi versione di MSBuild, il valore qui sarà (predefinito).

Jenkins MSBuild build-step, with (default) msbuild configuration selected

Dopo aver configurato una o più versioni di MSBuild, la caduta verso il basso verrà popolata con le configurazioni disponibili. Seleziona quello che ti serve.

È possibile vedere qui che ora ho selezionato la configurazione denominata che corrisponde all'installazione precedente.

Jenkins MSBuild build-step, with named msbuild configuration selected

+0

Ho controllato l'avviso giallo e rimosso 'msbuild.exe' e ho continuato a ricevere l'errore .. la risposta è stato l'unico a parlare di questo, e così felice che tu l'abbia aggiunto! – iamserious

+0

Posso creare quei due progetti solo ne uso uno ** Costruisci un progetto o una soluzione di Visual Studio usando la sezione MSBuild **? – MichaelMao

+0

Se si utilizza VS2015/C# 6 con msbuild, è necessario specificare il percorso del file msbuild su *** C: \ Programmi (x86) \ MSBuild \ 14.0 \ Bin ***, grazie per la soluzione di jessehouwing: http://stackoverflow.com/a/32008030/1677041 – Itachi

5

Penso che si dovrebbe impostare un percorso assoluto per "msbuild.exe" nella configurazione Jenkins, ad esempio:

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe 
+0

Ha ragione. C'è un bug nel plug-in. La configurazione di Jenkins richiede il percorso per MSBuild.exe, ma in realtà deve essere il percorso FULL di MSBuild.exe. Ti avviserà, ma puoi salvarlo in questo modo e funziona. – justdan23

-2

Si potrebbe provare a eseguire il comando

%comspec% /k ""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 

, che sarà aggiornare temporaneamente le variabili del percorso dell'ambiente per riflettere l'ambiente di build VS2010. Eseguilo prima di chiamare MSBUILD e vedere cosa succede. Lo uso nei miei script di compilazione senza problemi.

Nota a margine; è molto probabilmente controproducente avere più versioni di MSBUILD sul tuo PATH. Concentrati sull'ottenere una versione funzionante e vai da lì.

+2

Raccomando di utilizzare il plug-in MSBuild per Jenkins. Tuttavia, se si desidera creare uno script da riga di comando, non utilizzare% comspec%, utilizzare invece "CALL" senza parametri aggiuntivi e l'ambiente rimarrà per il resto dello script. Esempio: CHIAMATA "C: \ Programmi \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat" x86 – justdan23

12
Jenkins | Manage Jenkins | Configure System 

scorrere fino alla sezione di MSBuild e fare clic su installazioni MSBuild

definire il percorso completo MSBuild.exe, sul mio sistema ho 3.5 e v4.0.30319

Nota - specificare il percorso degli strumenti a 32 bit anche su un sistema a 64 bit, altrimenti si potrebbe ricevere un messaggio di errore:

La creazione di un'applicazione Windows Phone utilizzando MSBuild 64 bit non è supportata.

Quindi, in Jenkins - potrebbe essere, ad esempio:

Nome: La versione 3.5

Percorso: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

Nome: La versione 4.0

Percorso: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

0

È anche possibile aggiungere il percorso in cui si trova msbuild.exe, al PA Variabile d'ambiente del sistema TH del nodo (o dei nodi) che sta eseguendo quel lavoro specifico.

Problemi correlati