Partager via


Configurations standard et personnalisée de l'ensemble d'outils

Un ensemble d'outils MSBuild contient des tâches, de cibles, et les outils que vous pouvez utiliser pour générer un projet d'application.MSBuild inclut un ensemble d'outils standard, mais vous pouvez également créer des ensembles d'outils personnalisés.Pour plus d'informations sur la manière de spécifier un ensemble d'outils, consultez Ensemble d'outils MSBuild (ToolsVersion)

Configurations d'ensemble d'outils standard

MSBuild 4.5 inclut les ensembles d'outils standard suivants :

ToolsVersion

Chemin d'accès d'ensemble d'outils (comme spécifié dans la propriété de génération MSBuildToolsPath ou de 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 \

4.0

chemin d'installation de Windows\Microsoft.NET\Framework\v4.0.30319\

La valeur d' ToolsVersion détermine quel ensemble d'outils est utilisé par un projet que Visual Studio génère.Vous spécifiez ToolsVersion comme attribut dans l'élément de projet du fichier projet, mais vous pouvez substituer cet attribut à l'aide de le commutateur d' /toolsversion à une invite de commandes.Pour plus d'informations sur cet attribut, ce commutateur, et d'autres façons de spécifier ToolsVersion, consultez Substitution des paramètres ToolsVersion.

Si ToolsVersion n'est pas spécifié, les touches suivantes définissent ToolsVersion.

Ruche de Registre

Nom de 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\4.0\

DefaultToolsVersion

2.0

Les clés de Registre suivantes spécifient le chemin d'installation des versions du. NET Framework qui sont associées à chaque ToolsVersion.Le chemin d'installation spécifie l'emplacement de MSBuild.exe, qui définit les informations relatives à l'ensemble d'outils.

Ruche de Registre

Nom de clé

Valeur de la clé de chaîne

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\

MSBuildToolsPath

.NET Framework 2.0 chemin d'installation

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\

MSBuildToolsPath

Le .NET Framework 3.5 chemin d'installation

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\

MSBuildToolsPath

.NET Framework 4 chemin d'installation

Bb397428.collapse_all(fr-fr,VS.110).gifSub-ensembles d'outils

Si la clé de Registre dans le tableau précédent a une sous-clé, MSBuild l'utilise pour déterminer le chemin d'accès d'un Sub- ensemble d'outils qui contient d'autres outils.La sous-clé suivante est un exemple :

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0

La propriété de génération d' VisualStudioVersion indique si un Sub- ensemble d'outils est actif.Par exemple, une valeur d' VisualStudioVersion « 11,0 » spécifie le Sub- ensemble d'outils.NET Framework 4,5.Pour plus d'informations, consultez la section d'une précision ensembles d'outils de Ensemble d'outils MSBuild (ToolsVersion).

[!REMARQUE]

Nous vous recommandons d'éviter de modifier ces paramètres.Toutefois, vous pouvez ajouter vos propres paramètres et définir des définitions personnalisées au niveau de l'ensemble d'outils, comme la section suivante décrit.

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 de laboratoire de génération dans lequel vous devez avoir un système séparé pour générer des projets d' Visual C++ .À l'aide d'un ensemble d'outils personnalisé, vous pouvez assigner des valeurs personnalisées à l'attribut d' ToolsVersion lorsque vous créez des projets ou le exécutez MSBuild.exe. Ce faisant, vous pouvez également utiliser la propriété d' $(MSBuildToolsPath) pour importer des fichiers .targets à partir de ce répertoire.

Spécifiez un ensemble d'outils personnalisé dans le fichier de configuration pour MSBuild.exe (ou de l'outil personnalisé qui héberge le moteur d' MSBuild si c'est ce que vous utilisez).Par exemple, le fichier de configuration pour MSBuild.exe pourrait inclure la définition suivante d'ensemble d'outils.

<msbuildToolsets default="3.0">
   <toolset toolsVersion="4.0">
      <property name="MSBuildToolsPath" 
        value="C:\Windows\Microsoft .NET\Framework\v3.0" />
   </toolset>
</msbuildToolsets>

<msbuildToolsets> doit également être défini 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 lu correctement, <configSections> doit être la première sous-section dans la section d' <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 ToolsVersion qui a déjà été défini dans le Registre, les deux définitions ne sont pas fusionnées.La définition dans le fichier de configuration a la priorité et les paramètres du Registre pour cet ToolsVersion sont ignorées.

Les propriétés suivantes sont spécifiques à la valeur d' ToolsVersion utilisée dans les projets :

  • $ (MSBuildBinPath) a la valeur d' ToolsPath spécifiée dans le Registre ou dans le fichier de configuration où ToolsVersion est défini.$(MSBuildToolsPath) définissant 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) est une propriété réservée 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.Pour rendre ces propriétés personnalisées disponibles au fichier projet, utilisez le même nom que le nom de la valeur qui est spécifiée dans le fichier de configuration.

Voir aussi

Concepts

Ensemble d'outils MSBuild (ToolsVersion)