Partager via


Utiliser l’API MSBuild

MSBuild fournit une surface d’API publique afin que votre programme puisse effectuer des builds et inspecter des projets. Vous trouverez les versions récentes des API MSBuild dans les packages NuGet suivants :

Nom du package Descriptif
Microsoft.Build Contient l’assembly Microsoft.Build 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 réussie 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 utilisé pour implémenter des tâches MSBuild personnalisées.

De plus, 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, une compilée avec le .NET Framework et une autre compilée avec .NET Core, qui est un sous-ensemble de l’aire de l’API .NET Framework. La version .NET Core de MSBuild est utilisée lorsque vous appelez la dotnet commande et lors de l’utilisation de MSBuild sur les 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.

Namespace S’applique à Descriptif
Microsoft.Build.Construction Tous Contient des types que le modèle objet MSBuild utilise pour construire des racines de projet avec des valeurs non évaluées. Chaque racine du projet correspond à un fichier projet ou cible.
Microsoft.Build.Definition Tous Contient la classe ProjectOptions, qui prend en charge la construction du projet.
Microsoft.Build.Evaluation Tous Contient des 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 utilisée pour stocker l’état EvaluationContext d’évaluation entre les appels.
Microsoft.Build.Exceptions Tous Contient des types d’exceptions qui peuvent être levées pendant le processus de construction.
Microsoft.Build.Execution Tous Contient des types que le modèle objet MSBuild utilise pour générer des projets.
Microsoft.Build.Framework Tous Contient les types qui définissent la façon dont 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 des classes utilisées pour représenter les types XAML analysés à partir de fichiers, de 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 journaliser 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 d’expédition 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 des 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.

Localisateur MSBuild

MSBuild Locator est une API que vous pouvez utiliser pour rechercher MSBuild sur un ordinateur. Vous pouvez l’utiliser dans le développement d’outils de génération lorsque vous souhaitez rechercher des versions installées de MSBuild.

NuGetPackage se trouve sur Microsoft.Build.Locator et la documentation de référence se trouve sur Microsoft.

Pour plus d’informations sur MSBuildLocator, consultez Rechercher et utiliser des versions de MSBuild.