2010-08-30 13 views
22

Mi sembra di aver perso il primo giorno di MsBuild 101. Mi trovo a chiedere "Che cosa fa, cosa sostituisce e quando ne ho bisogno?" dato che posso solo premere F5 e compilare la mia domanda.MSBuild: Che cos'è e quando ne ho bisogno?

Qual è l'immagine più grande che mi manca?

+5

quando si preme F5 per compilare l'applicazione VS richiama msbuild; msbuild è il dettaglio di implementazione di f5. –

risposta

29

MSBuild è la piattaforma di generazione che abilita tutte le attività di creazione nel mondo di Visual Studio.

Una migliore, esempio più pratico sarebbe quello di affermare che

1.) I file Csproj (ogni progetto C#) sono file MSBuild

2.) Quando si preme F5, che, fondamentalmente, (banalizzando) chiama msbuild.exe e passa il file .csproj.

MSBuild autorizza tutto ciò che fa "colpire F5". Dalla creazione della cartella "debug" o "release", al rilascio dei riferimenti nella directory bin \, al richiamo di CSC ... e tutto ciò che si trova tra ... MSBuild "alimenta" tutto ciò.

Se tutto ciò di cui hai bisogno in una build è l'output che ti dà F5, allora sai tutto quello che probabilmente devi sapere su MSBuild.

Nella maggior parte degli scenari di sviluppo commerciale/pratico, tuttavia, arriverà un momento in cui è necessario personalizzare il processo di compilazione. L'approccio più comune è l'automazione del processo di compilazione (utilizzando TeamBuild o qualche sistema homegrown). Potrebbe anche essere necessario per

  • creare una distribuzione "confezionato"
  • collegamento a un'altra libreria di fuori del progetto che è anche attivamente in fase di sviluppo
  • pubblicare il vostro costruire a un FTP e inviare una e-mail a un notifica al cliente della sua disponibilità.

L'utilizzo di una piattaforma di costruzione unificata ed estensibile (cioè MSBuild) è ciò che rende tutto questo possibile questi, pur essendo parte del processo di generazione ... mantenendo la parte "costruzione" della pipeline di sviluppo semplice e contenute.

+0

Grazie per la 101 - informazioni formato! – LamonteCristo

1

msbuild viene utilizzato quando si desidera creare il progetto dalla riga di comando. Ogni volta che vedi un prodotto di integrazione continua che costruirà automaticamente il tuo progetto, chiamerà msbuild per eseguire la fase di costruzione effettiva.

+0

Perché non usare solo csc? – LamonteCristo

+1

MSbuild usa csc, ma può anche fare altre cose. È NANT di Microsoft. – nportelli

+0

C'è di più ad esso non solo compilarlo - cosa succede se si desidera eseguire i test, inviare i risultati dei test, archivio di costruire manufatti, ecc – dsolimano

2

E 'utile quando si desidera fare automatizzato costruisce, e devono implementare un processo di generazione

The F5 Key Is Not a Build Process e collegamenti in esso (ad es this) è una buona lettura a questo proposito.

Inoltre, i file di progetto di Visual Studio sono file msbuild. Se vuoi fare cose più avanzate quando costruisci (ad esempio eseguire un minifier javascript, avere più controllo sugli identificatori di versione generati automaticamente, post-processare file ecc.), Dovrai scavare in msbuild.

1

Penso che i server di generazione dovrebbero avere la possibilità di premere il tasto F5 in un modo più semplice rispetto a Windows API.

0

So che questo è piuttosto vecchio, ma ecco la mia opinione su MSBuild.

È uno strumento di creazione di script molto simile a ANT. Entrambi usano XML per la configurazione, quindi sarai in grado di capirlo abbastanza velocemente. Entrambi hanno il concetto di "Obiettivi", ad esempio, molte più somiglianze nel pensare, se si conosce ANT, l'interruttore non dovrebbe essere difficile.

file MSBuild generati da Visual Studio è davvero come gli script ANT generati si ottiene da Eclipse che costruire i vostri progetti, ricordo il tuo include e definiscono le dipendenze. Puoi modificarli direttamente per divertimento e profitto.

mi piace MSBuild, fissa alcune delle cose che trovo fastidiosa di ANT.

Problemi correlati