Partager via


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.