Utiliser l’API MSBuild
MSBuild fournit une surface d’API publique qui permet à votre programme d’effectuer des builds et d’inspecter des projets. Les versions récentes des API MSBuild se trouvent dans les packages NuGet suivants :
Nom du package | Description |
---|---|
Microsoft.Build | Contient l’assembly Microsoft.Build qui est utilisé pour créer, modifier et évaluer des projets MSBuild. |
Microsoft.Build.Framework | Contient l’assembly d’infrastructure MSBuild commun utilisé par d’autres assemblys MSBuild. |
Microsoft.Build.Runtime | Fournit une copie exécutable complète de MSBuild. Référencez ce package uniquement si votre application doit charger des projets ou exécuter des builds in-process sans nécessiter l’installation de MSBuild. L’évaluation des projets à l’aide de ce package nécessite l’agrégation de composants supplémentaires (comme les compilateurs) dans un répertoire d’application. |
Microsoft.Build.Tasks.Core | Contient l’assembly Microsoft.Build.Tasks qui implémente les tâches couramment utilisées de MSBuild. |
Microsoft.Build.Utilities.Core | Contient l’assembly Microsoft.Build.Utilities qui est utilisé pour implémenter des tâches MSBuild personnalisées. |
En outre, NuGet héberge également un assembly hérité, Microsoft.Build.Engine, qui est déconseillé.
Il existe plusieurs versions différentes de l’API MSBuild, et pour les versions 15 et 16, il existe deux formes distinctes des assemblys dans les packages NuGet, l’une compilée avec .NET Framework, et l’autre compilée avec .NET Core, qui est un sous-ensemble de la surface de l’API .NET Framework. La version .NET Core de MSBuild est utilisée lorsque vous appelez la commande dotnet
et lorsque vous utilisez MSBuild sur des systèmes Mac et Linux.
Vous trouverez la documentation de l’API MSBuild à l’aide du navigateur d’API .NET ou en parcourant les espaces de noms dans la liste suivante.
Espace de noms | S'applique à | Description |
---|---|---|
Microsoft.Build.Construction | Tous | Contient les types que le modèle objet MSBuild utilise pour construire des racines du projet avec des valeurs non-évaluées. Chaque racine du projet correspond à un fichier de projet ou de cibles. |
Microsoft.Build.Definition | Tous | Contient la classe ProjectOptions , qui prend en charge la construction de projet. |
Microsoft.Build.Evaluation | Tous | Contient les types que le modèle objet MSBuild utilise pour évaluer des projets. Chaque projet est associé à une ou plusieurs racines de projet. |
Microsoft.Build.Evaluation.Context | Tous | Contient la classe EvaluationContext utilisée pour stocker l’état d’évaluation entre les appels. |
Microsoft.Build.Exceptions | Tous | Contient les types d'exceptions susceptibles d'être levés pendant le processus de génération. |
Microsoft.Build.Execution | Tous | Contient les types que le modèle objet MSBuild utilise pour générer des projets. |
Microsoft.Build.Framework | Tous | Contient les types qui définissent comment les tâches et les enregistreurs d’événements interagissent avec le moteur MSBuild. |
Microsoft.Build.Framework.Profiler | Tous | Contient les types qui prennent en charge le profilage des performances. |
Microsoft.Build.Framework.XamlTypes | .NET Framework uniquement | Contient les classes utilisées pour représenter les types XAML analysés dans les fichiers, les règles et d’autres sources. |
Microsoft.Build.Globbing | Tous | Contient les classes qui prennent en charge le traitement de caractères génériques. |
Microsoft.Build.Globbing.Extensions | Tous | Contient les types qui prennent en charge les extensions pour le traitement des caractères génériques. |
Microsoft.Build.Graph | Tous | Contient des types qui prennent en charge le commutateur MSBuild -graph . |
Microsoft.Build.Logging | Tous | Contient les types utilisés pour l'enregistrement de la progression d'une build. |
Microsoft.Build.ObjectModelRemoting | Tous | Contient les types qui prennent en charge la communication à distance dans MSBuild. |
Microsoft.Build.Tasks | Tous | Contient l’implémentation de toutes les tâches livrées avec MSBuild. |
Microsoft.Build.Tasks.Deployment.Bootstrapper | .NET Framework uniquement | Contient des classes utilisées en interne par MSBuild. |
Microsoft.Build.Tasks.Deployment.ManifestUtilities | .NET Framework uniquement | Contient des classes utilisées par MSBuild. |
Microsoft.Build.Tasks.Hosting | Tous | Contient des classes utilisées en interne par MSBuild. |
Microsoft.Build.Tasks.Xaml | .NET Framework uniquement | Contient les classes liées aux tâches de génération XAML. |
Microsoft.Build.Utilities | Tous | Contient des classes d’assistance que vous pouvez utiliser pour créer vos propres enregistreurs d’événements et tâches MSBuild. |
Dans le tableau précédent, Tous dans la colonne S’applique à signifie que les types de l’espace de noms sont disponibles dans les versions .NET Framework et .NET Core de l’API MSBuild.