MSBuild - MSBuild
Développeur(s) | Microsoft |
---|---|
Première version | 2003 |
Version stable | v16.11.0 / 11 août 2021
|
Dépôt | |
Écrit en | C# |
Système opérateur | Multiplateforme |
Plate-forme | .NET Framework , .NET Core |
Taper | Outil de construction |
Licence | Licence MIT |
Site Internet |
docs |
Microsoft Build Engine , mieux connu sous le nom de MSBuild , est un ensemble d' outils de génération gratuit et open source pour le code managé ainsi que le code C++ natif et faisait partie de .NET Framework . Visual Studio dépend de MSBuild, mais pas l'inverse. La gestion du cycle de vie des applications Visual Studio dépend de MSBuild pour effectuer des builds d'équipe via Azure DevOps Server .
Aperçu
MSBuild est un outil de génération qui permet d'automatiser le processus de création d'un produit logiciel, y compris la compilation du code source , l' empaquetage , les tests, le déploiement et la création de documentations. Avec MSBuild, il est possible de créer des projets et des solutions Visual Studio sans l' IDE Visual Studio installé. MSBuild est gratuit et open-source . MSBuild était auparavant fourni avec .NET Framework ; à partir de Visual Studio 2013 , cependant, il est fourni avec Visual Studio à la place. MSBuild est un remplacement fonctionnel de l' utilitaire nmake , qui reste utilisé dans les projets issus des anciennes versions de Visual Studio.
MSBuild agit sur les fichiers de projet MSBuild qui ont une syntaxe XML similaire à Apache Ant ou NAnt . Même si la syntaxe est basée sur un schéma XML bien défini, la structure et le fonctionnement fondamentaux sont comparables à l' utilitaire make Unix traditionnel : l'utilisateur spécifie ce qui sera utilisé (généralement des fichiers de code source) et quel devrait être le résultat (généralement un fichier statique bibliothèque, DLL ou une application exécutable), mais l'utilitaire lui-même décide quoi faire et l'ordre dans lequel effectuer la construction.
MSBuild peut générer un projet sur une version .NET Framework prise en charge de votre choix. Cette fonctionnalité est appelée "multitargeting". Cependant, toute version donnée d'un projet ne peut cibler qu'une seule version du framework à la fois.
Histoire
MSBuild a été créé en 2003 pour cibler .NET Framework 2.0 pour une utilisation dans Visual Studio 2005 (nom de code Whidbey) et Windows Vista (nom de code Longhorn).
Versions
Version | .NET Framework | Version Visual Studio | Emplacements d'installation habituels (x86) |
---|---|---|---|
2.0 | 2.0 | 2005 | C:\Windows\Microsoft.NET\Framework\v2.0.50727 |
3.5 | 3.5 | 2008 | C:\Windows\Microsoft.NET\Framework\v3.5 |
4.7.3062.0 | 4.0 | 2010 | C:\Windows\Microsoft.NET\Framework\v4.0.30319 |
4.8.3761.0 | 4.5.2 | 2012 | C:\Windows\Microsoft.NET\Framework\v4.0.30319 |
12,0 | 4.5.2 | 2013 | C:\Program Files (x86)\MSBuild\12.0\Bin |
14,0 | 4.6 | 2015 | C:\Program Files (x86)\MSBuild\14.0\Bin |
15,0 | 4.7 | 2017 |
|
16,0 | 4.7.2 | 2019 |
|
Terminologie
- Cible
- Une cible contient un ensemble de tâches à exécuter par MSBuild. Le focus de MSBuild est le résultat Target spécifié lors de l'appel de MSBuild avec le fichier projet. En effet, un projet peut contenir plusieurs entrées cibles , chacune exécutée de manière séquentielle (et conditionnellement). Les cibles dépendantes suivantes sont exécutées avant la cible demandée. Le flux d'exécution de la cible actuelle peut être dirigé à l'aide des attributs suivants : Condition, BeforeTargets, AfterTargets et DependsOnTargets. Chaque cible peut être autonome avec les tâches nécessaires pour s'accomplir. Une cible est généralement une action exécutée sur un fichier, un ensemble de fichiers ou un répertoire.
- Tâche
- Une tâche est une commande qui est exécutée afin de compléter une cible. Les tâches sont utilisées pour regrouper et exécuter un nombre quelconque d'actions pendant le processus de génération. Ils sont généralement implémentés dans un assembly .NET en tant que classe qui hérite de la classe Task ou implémente l'interface ITask. De nombreuses tâches de base sont fournies dans le cadre du .NET Framework et les tâches développées par la communauté sont disponibles gratuitement. Quelques exemples de tâches incluent la copie de fichiers, la création de répertoires ou l'analyse XML.
- Propriétés et éléments
- MSBuild fournit des propriétés et des éléments , qui sont conceptuellement équivalents aux macros de make . Les propriétés spécifient des valeurs statiques, tandis que les éléments sont généralement utilisés pour définir des ensembles de fichiers ou de dossiers sur lesquels effectuer des tâches. La spécification des fichiers sur les éléments est facilitée par la prise en charge des caractères génériques.
Voir également
Les références
Lectures complémentaires
- Kretzler, Brian (2011). Trucage MSBuild : 99 façons de plier le moteur de construction à votre guise . Compagnie K Cross Seven Ranch. p. 426. ISBN 978-0-615-50907-5.
- Hashimi, Sayed Ibrahim (juin 2006). "À l'intérieur de MSBuild : Compilation d'applications avec des tâches personnalisées pour le moteur de génération Microsoft" . Magazine MSDN . Microsoft. Archivé de l'original le 11 avril 2015 . Consulté le 11 avril 2013 .
- Hashimi, Sayed Ibrahim (mars 2007). "Astuces WiX : Automatisez les versions avec MSBuild et Windows Installer XML" . Magazine MSDN . Microsoft . Consulté le 11 avril 2013 .
- Hashimi, Sayed Ibrahim (février 2009). "MSBuild : Meilleures pratiques pour la création de builds fiables, Partie 1" . Magazine MSDN . Microsoft . Consulté le 11 avril 2013 .
- Hashimi, Sayed Ibrahim (mars 2009). "MSBuild : Meilleures pratiques pour créer des versions fiables, partie 2" . Magazine MSDN . Microsoft . Consulté le 11 avril 2013 .
- Reif, Andreas (10 juin 2010). "Einführung in Microsofts Build-Management-Technik MSBuild" [Introduction à la technologie de gestion de build de Microsoft, MSBuild]. développeur heise (en allemand). Heinz Heise . Consulté le 11 avril 2013 .
- Jones, Mike ; Warren, Geneviève ; Blome, Mike ; Robertson, Colin; Hogenson, Gordon ; Cai, Saisang (4 novembre 2016). "Cadre cible MSBuild et plateforme cible" . MSBuild. Microsoft Docs . Récupéré le 2018-02-19 .