Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
MSBuild 3.5 inclut deux ensembles d'outilsprédéfinis. Les ensembles d'outils sont des jeux de tâches, de cibles et d'outils de ligne de commande que vous pouvez utiliser pour générer un projet. Vous pouvez également créer vos propres modèles de projet personnalisés.
Remarque : |
|---|
Nous vous recommandons de lire Ciblage de versions spécifiques du .NET Framework avec MSBuild pour mieux comprendre les ensembles d'outils, les versions cibles du .Net Framework et les ToolsVersions avant de continuer. |
Types d'ensemble d'outils
Lorsque vous définissez un ensemble d'outils personnalisé, la valeur du répertoire sur lequel pointe $(MSBuildToolsPath) est également définie. Par conséquent, vous pouvez utiliser $(MSBuildToolsPath) dans un fichier projet pour importer des tâches et des cibles, au lieu de coder péniblement ces valeurs dans le fichier projet. Cela vous permet de définir des ensembles d'outils dans le Registre ou dans un fichier de configuration, afin que vous puissiez effectuer la génération sur les bureaux de développeur ou dans les scénarios d'atelier de génération.
En utilisant des ensembles d'outils, vous pouvez demander à MSBuild de cibler des versions .NET Framework spécifiques. Cela signifie que vous pouvez générer un projet qui ne fonctionne uniquement qu'avec Visual Studio 2008, et que vous pouvez également générer des projets Visual Studio 2005 dans Visual Studio 2008.
Visual Studio 2008 inclut deux ensembles d'outils « standard ». Un ensemble d'outils, également fourni avec MSBuild 2.0 dans Visual Studio 2005, cible .NET Framework 2.0. L'autre ensemble d'outils, fourni avec MSBuild 3.5, peut cibler .NET Framework 2.0, .NET Framework 3.0 et .NET Framework 3.5.
Configurations d'ensemble d'outils standard
MSBuild 3.5 inclut les ensembles d'outils standard suivants :
ToolsVersion |
MSBuildToolsPath ou MSBuildBinPath |
|---|---|
2.0 |
< chemin d'installation de Windows >\Microsoft.Net\Framework\v2.0.50727\ |
3.5 |
< chemin d'installation de Windows >\Microsoft.Net\Framework\v3.5.20223\ |
Les ensembles d'outils standard sont disponibles n'importe où sur l'ordinateur lorsque vous exécutez MSBuild.exe ou créez une instance du moteur MSBuild, à moins que les informations de l'ensemble d'outils soient substituées dans le fichier MSBuild.exe.config ou un fichier de configuration spécifique à l'hôte.
La valeur ToolsVersion, spécifiée comme un attribut dans la balise Project du fichier projet, détermine quel ensemble d'outils est utilisé par un projet Visual Studio généré. Vous pouvez penser à ToolsVersion comme le « nom » d'un ensemble d'outils. Si un ToolsVersion n'est pas spécifié dans le projet, un ToolsVersion par défaut est utilisé. Pour MSBuild 3.5, la valeur par défaut de ToolsVersion est 2.0. Cela signifie que tout projet, sans version explicite de ToolsVersion, utilise un jeu d'outil toolset 2.0 fourni avec Visual Studio 2005. Les projets Visual Studio 2008 génèrent automatiquement tous les projets avec un ToolsVersion d'une valeur 3.5. Comme il utilise ce nouveau jeu d'outils, il peut cibler les trois versions .NET Framework.
Les informations relatives à l'ensemble d'outils standard sont définies dans les clés suivantes du Registre :
Ruche de Registre |
Chaîne du nom de la clé |
Valeur de la clé de chaîne |
|---|---|---|
HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\MSBuild\3.5\ |
DefaultToolsVersion |
2.0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\ |
ToolsPath |
Chemin d'installation de .NET Framework 2.0 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\ |
ToolsPath |
Chemin d'installation de .NET Framework 3.5 |
DefaultToolsVersion spécifie l'ensemble d'outils à utiliser lorsque vous générez un projet qui ne spécifie pas d'ensemble d'outils. Par exemple, la valeur de DefaultToolsVersion pour MSBuild de Visual Studio 2008 est 2.0. La valeur de DefaultToolsVersion peut être substituée dans les fichiers de configuration spécifiques à l'hôte. Les autres valeurs définissent les chemins d'installation pour les versions .NET Framework.
Remarque : |
|---|
Nous vous recommandons de ne pas changer ces paramètres. Néanmoins, vous pouvez ajouter vos propres paramètres et configurer des définitions d'ensemble d'outils personnalisées sur l'ordinateur, comme décrit dans la section suivante. |
Définitions d'ensemble d'outils personnalisées
Lorsqu'un ensemble d'outils standard ne répond pas à vos spécifications de génération, vous pouvez créer un ensemble d'outils personnalisé. Par exemple, vous pouvez avoir un scénario d'atelier de génération dans lequel vous devez avoir un système de génération séparé pour générer les projets Visual C++ . A l'aide d'un ensemble d'outils personnalisé, vous pouvez assigner des valeurs personnalisées à l'attribut ToolsVersion lorsque vous créez des projets ou exécutez MSBuild.exe. Faire ceci vous permet également d'utiliser la propriété $(MSBuildToolsPath) pour importer des fichiers .targets à partir de ce répertoire. (Vous pouvez également utiliser également des variables d'environnement si vous n'êtes pas intéressés par la définition d'un ensemble d'outils séparé.)
Spécifiez votre ensemble d'outils personnalisé dans le fichier de configuration pour MSBuild.exe (ou pour un hôte personnalisé de MSBuild si vous avez un outil séparé qui héberge le moteur MSBuild). Par exemple, le fichier de configuration pour MSBuild.exe pourrait inclure la définition d'ensemble d'outils suivante :
<msbuildToolsets default="3.0">
<toolset toolsVersion="4.0">
<property name="MSBuildToolsPath"
value="C:\Windows\Microsoft .NET\Framework\v3.0" />
</toolset>
</msbuildToolsets>
<msbuildToolsets> est une section de configuration .NET personnalisée qui doit également être définie dans le fichier de configuration, comme suit :
<configSections>
<section name="msbuildToolsets"
Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
</section>
</configSections>
Remarque : |
|---|
Pour être lue correctement, la balise configSections doit être la première balise sous la balise de configuration. |
ToolsetConfigurationSection est une section de configuration personnalisée qui peut être utilisée par tout hôte pour la configuration personnalisée. Si vous utilisez un ensemble d'outils personnalisé, un hôte ne doit rien faire pour initialiser le moteur de génération, excepté fournir les entrées de fichier de configuration. En définissant des entrées dans le Registre, vous pouvez spécifier des ensembles d'outils d'ordinateur qui s'appliquent à MSBuild.exe, Visual Studioet tous les hôtes de MSBuild.
Remarque : |
|---|
Si un fichier de configuration définit des paramètres pour un ToolsVersion qui a déjà été défini dans le Registre, les deux définitions ne sont pas fusionnées. La définition du fichier de configuration a priorité et les paramètres dans le Registre pour ce ToolsVersion sont ignorés. |
Les propriétés suivantes sont spécifiques à la valeur de ToolsVersion utilisé dans les projets :
$ (MSBuildBinPath) - MSBuildBinPath a la valeur ToolsPath qui est spécifiée dans le Registre ou le fichier de configuration dans lequel est défini ToolsVersion. Le paramètre $(MSBuildToolsPath) dans le Registre ou le fichier de configuration spécifie l'emplacement de l'ensemble d'outils. Dans le fichier projet, cela mappe à la propriété $(MSBuildBinPath) et également à la propriété $(MSBuildToolsPath).
$ (MSBuildToolsPath) - Cette propriété réservée est fournie par la propriété MSBuildToolsPath spécifiée dans le fichier de configuration. (Cette propriété se substitue à $(MSBuildBinPath). Toutefois, $(MSBuildBinPath) est retenu pour la compatibilité.)
Vous pouvez également ajouter des propriétés personnalisées spécifiques au ToolsVersion au fichier de configuration en utilisant la même syntaxe que celle utilisée pour ajouter la propriété MSBuildToolsPath. Ces propriétés personnalisées sont disponibles pour le fichier projet en utilisant le même nom que la valeur spécifiée dans le fichier de configuration.
Remarque :