Utilisation de MSBuild

MSBuild fournit un format XML bien défini et extensible pour créer des fichiers projet qui décrivent entièrement les éléments de projet à générer, générer des tâches et créer des configurations.

Considérations générales relatives à MSBuild

Les fichiers projet MSBuild, par exemple, Visual C# .csproj et Visual Basic .vbproj, contiennent des données utilisées au moment de la génération, mais peuvent également contenir des données utilisées au moment du design. Les données au moment de la génération sont stockées à l’aide de primitives MSBuild, notamment Item Element (MSBuild) et Property Element (MSBuild). Les données au moment du design, qui sont des données spécifiques au type de projet et à tous les sous-types de projet associés, sont stockées dans du xml de forme libre réservée.

MSBuild n’a pas de prise en charge native des objets de configuration, mais fournit des attributs conditionnels pour spécifier des données spécifiques à la configuration. Par exemple :

<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>

Pour plus d’informations sur les attributs conditionnels, consultez Constructions conditionnelles.

Extension de MSBuild pour votre type de projet

Les interfaces et API MSBuild sont susceptibles de changer dans les futures versions de Visual Studio. Par conséquent, il est prudent d’utiliser les classes MPF (Managed Package Framework), car elles fournissent une protection contre les modifications.

Managed Package Framework for Projects (MPFProj) fournit des classes d’assistance pour la création et la gestion du nouveau système de projet. Vous trouverez les instructions de code source et de compilation sur MPF pour projets - Visual Studio 2013.

Les classes MPF spécifiques au projet sont les suivantes :

Classe Implémentation
Microsoft.VisualStudio.Package.ProjectNode IVsProject3

IVsCfgProvider2

IPersistFileFormat

IVsSolutionEvents
Microsoft.VisualStudio.Package.ProjectFactory IVsProjectFactory
Microsoft.VisualStudio.Package.HierarchyNode IVsHierarchy
Microsoft.VisualStudio.Package.ProjectConfig IVsCfg

IVsProjectCfg

IVsBuildableProjectCfg

IVsDebuggableProjectCfg
Microsoft.VisualStudio.Package.SettingsPage IPropertyPageSite

Microsoft.VisualStudio.Package.ProjectElement la classe est un wrapper pour les éléments MSBuild.

Générateurs de fichiers uniques et tâches MSBuild

Les générateurs de fichiers uniques sont accessibles uniquement au moment du design, mais les tâches MSBuild peuvent être utilisées au moment du design et au moment de la génération. Pour une flexibilité maximale, utilisez donc des tâches MSBuild pour transformer et générer du code. Pour plus d’informations, consultez Outils personnalisés.