MSBuild: Qu'est-ce que c'est, et quand en ai-je besoin?

Il me semble avoir manqué le jour 1 de MsBuild 101. Je me demande " Que fait-il, que remplace-t-il, et quand en ai-je besoin?"puisque je peux juste frapper F5 et compiler mon application.

Quelle est la plus grande image qui me manque?

24
demandé sur random65537 2010-08-30 22:23:40

5 réponses

MSBuild est la plate-forme de construction qui active toutes les activités de construction dans le monde Visual Studio.

Un meilleur exemple, plus pratique serait d'indiquer que

1.) Le .les fichiers csproj (chaque projet C#) sont des fichiers msbuild

2.) Lorsque vous appuyez sur F5, vous appelez essentiellement (simplifiant) msbuild.exe et en passant dans votre .fichier csproj.

MSBuild autorise toutes les choses qui font fonctionner "frapper F5". De la création du dossier" debug "ou" release " à la suppression des références dans le répertoire bin\, pour invoquer CSC ... et tout entre les deux ... MSBuild "pouvoirs" tout cela.

Si tout ce dont vous aurez besoin d'une construction est la sortie que F5 vous donne, alors vous savez tout ce que vous devez probablement savoir sur MSBuild.

Dans la plupart des scénarios de développement commerciaux/pratiques, cependant, il viendra un moment où il sera nécessaire de personnaliser le processus de construction. L'approche la plus courante consiste à automatiser le processus de construction (en utilisant TeamBuild ou certains homegrown système). Vous devrez peut-être également

  • créer un déploiement "empaqueté"
  • lien vers une autre bibliothèque en dehors de votre projet qui est également activement en cours de développement
  • publiez votre build sur un FTP et envoyez un e-mail à un client notifiant de sa disponibilité.

L'utilisation d'une plate-forme de construction unifiée et extensible (c'est-à-dire MSBuild) est ce qui rend tout cela possible, tout en faisant partie du processus de construction ... garder la partie" build "de l' pipeline de développement simple et contenu.

33
répondu Taylor Bird 2010-08-31 00:31:12

C'est utile lorsque vous voulez faire des builds automatisés, et que vous devez implémenter un processus de construction

La clé F5 N'est pas un processus de construction et les liens qui s'y trouvent (par exemple this) sont une bonne lecture à cet égard.

En outre, vos fichiers de projet Visual Studio sont des fichiers msbuild. Si vous voulez faire des choses plus avancées lorsque vous construisez (par exemple, exécuter un minifier javascript, avoir plus de contrôle sur les identifiants de version générés automatiquement, le post-traitement des fichiers, etc.) , vous aurez à creuser dans msbuild.

2
répondu nos 2010-08-30 18:38:07

Msbuild est utilisé lorsque vous souhaitez créer votre projet à partir de la ligne de commande. Chaque fois que vous voyez un produit d'intégration continue qui construira automatiquement votre projet, il appellera msbuild pour effectuer l'étape de construction réelle.

1
répondu David 2010-08-30 18:25:57

Je pense que les serveurs de construction devraient avoir la possibilité d'appuyer sur la touche F5 d'une manière plus simple que via L'API windows.

1
répondu Petr Kozelek 2010-08-31 13:12:58

Je sais que c'est assez rassis, Mais voici mon point de vue sur MSBuild.

C'est un outil de construction scriptable vraiment similaire à ANT. Ils utilisent tous deux XML pour la configuration, de sorte que vous serez en mesure de le comprendre assez rapidement. Les deux ont le concept de "cibles" par exemple, beaucoup plus de similitudes dans la pensée, si vous savez que le commutateur ne devrait pas être difficile.

Les fichiers MSBuild générés à partir de Visual Studio ressemblent vraiment aux scripts ANT générés par Eclipse qui construisent vos projets, rappelez-vous vos includes et définissez vos dépendances. Vous pouvez les modifier directement pour le plaisir et le profit.

J'aime MSBuild, il corrige certains des trucs que je trouve ennuyeux à propos de ANT.

0
répondu Dan Devine 2011-05-13 01:58:47