47 votes

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

Il semble que j'ai manqué le premier jour de MsBuild 101. Je me retrouve à me demander "Qu'est-ce que ça fait, qu'est-ce que ça remplace, et quand est-ce que j'en ai besoin ?" depuis que je peux simplement appuyer sur F5 et compiler mon application.

Quelle est la grande image que je manque ?

7 votes

Lorsque vous appuyez sur f5 pour compiler votre application, VS invoque msbuild ; msbuild est l'implémentation détaillée de f5.

0 votes

C'est également de cette manière que la plupart des plateformes CI/CD construisent les projets .NET Framework réalisés dans Visual Studio.

65voto

Taylor Bird Points 4613

MSBuild est la plateforme de construction qui permet toutes les activités de construction dans le monde de Visual Studio.

Un meilleur exemple, plus pratique, serait d'affirmer que

  1. En .csproj (chaque projet C#) sont msbuild fichiers

  2. Quand vous frappez F5 vous appelez essentiellement (en simplifiant à l'extrême) msbuild.exe et en passant dans votre .csproj fichier.

MSBuild donne des moyens à toutes les choses qui rendent en appuyant sur F5 travail. De la création du " debug " ou " release ", pour déposer des références dans le dossier bin\ à l'invocation de CSC ... et tout ce qui se trouve entre les deux ... MSBuild "alimente" tout cela.

Si tout ce dont vous avez besoin d'une construction est la sortie que F5 vous donne, alors vous savez à peu près tout ce que vous avez probablement besoin de savoir sur MSBuild.

Cependant, dans la plupart des scénarios de développement commercial/pratique, il arrive un moment où il est nécessaire de personnaliser le processus de construction. L'approche la plus courante consiste à automatiser le processus de construction (en utilisant TeamBuild ou un système maison). Vous pouvez également avoir besoin de

  • créer un déploiement "packagé
  • lien vers une autre bibliothèque en dehors de votre projet, qui est également active. en cours de développement
  • publier votre construction sur un FTP et envoyer un courriel à un client pour le notifier de sa disponibilité.

L'utilisation d'une plateforme 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 ... en gardant la partie "construction" du pipeline de développement simple et contenue.

2voto

nos Points 102226

C'est utile lorsque vous voulez faire des constructions automatisées et que vous devez mettre en place un processus de construction.

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

De plus, 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 mineur javascript, avoir plus de contrôle sur les identifiants de version autogénérés, le post-traitement des fichiers, etc.), vous devrez creuser dans msbuild.

1voto

Dan Devine Points 263

Je sais que c'est un peu dépassé, mais voici mon point de vue sur MSBuild.

Il s'agit d'un outil de construction scriptable très similaire à ANT. Ils utilisent tous deux XML pour la configuration, ce qui vous permettra de vous y retrouver assez rapidement. Les deux ont le concept de "Targets" par exemple, beaucoup plus de similitudes dans la pensée, si vous connaissez ANT le changement ne devrait pas être difficile.

Les fichiers MSBuild générés à partir de Visual Studio sont vraiment comme les ANT scripts générés que vous obtenez à partir d'Eclipse qui construisent vos projets, se souviennent de vos includes et définissent vos dépendances. Vous pouvez les modifier directement pour le plaisir et le profit.

J'aime MSBuild, il corrige certaines des choses que je trouve ennuyeuses dans ANT.

1voto

David Points 20209

Msbuild est utilisé lorsque vous voulez construire votre projet à partir de la ligne de commande. Chaque fois que vous voyez un produit d'intégration continue qui construit automatiquement votre projet, il appelle msbuild pour effectuer l'étape de construction.

1 votes

MSbuild utilise effectivement csc, mais il peut aussi faire d'autres choses. C'est le NANT de Microsoft.

0 votes

La compilation n'est pas tout : que faire si vous voulez exécuter des tests, envoyer les résultats des tests, archiver les artefacts de construction, etc.

0 votes

Avec "csc", vous devez construire la très longue liste de paramètres de ligne de commande nécessaires à la compilation de tous vos fichiers. Avec "msbuild", vous lui passez votre fichier projet ou votre fichier solution. Il suivra alors toutes les options de compilation que vous avez déjà définies dans Visual Studio.

1voto

Petr Kozelek Points 756

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X