Configuraciones de conjuntos de herramientas estándar y personalizados

MSBuild Conjunto contiene tareas, destinos, y herramientas que puede utilizar para compilar un proyecto de aplicación.MSBuild incluye un conjunto de herramientas estándar, pero también puede crear conjuntos de herramientas personalizados.Para obtener información sobre cómo especificar un conjunto de herramientas, vea Conjunto de herramientas de MSBuild (ToolsVersion)

Configuraciones del conjunto de herramientas estándar

MSBuild 4.5 incluye los siguientes conjuntos de herramientas estándar:

ToolsVersion

Ruta del conjunto de herramientas (como se especifica en la propiedad de compilación de MSBuildToolsPath o de MSBuildBinPath)

2.0

Ruta de instalación de Windows\Microsoft.Net\Framework \ v2.0.50727 \

3.5

Ruta de instalación de Windows\Microsoft.NET\Framework \ v3.5.20223 \

4.0

Ruta de instalación de Windows\Microsoft.NET\Framework \ v4.0.30319 \

El valor ToolsVersion determina qué conjunto de herramientas utilizará un proyecto que Visual Studio genere.Especifica ToolsVersion como atributo en el elemento Proyecto del archivo de proyecto, pero puede reemplazar que atributo utilizando el modificador /toolsversion en un símbolo del sistema.Para obtener información sobre este atributo, este modificador, y otras maneras de especificar ToolsVersion, vea Invalidar el valor de la versión de herramientas.

Si ToolsVersion no se especifica, las teclas siguientes definen ToolsVersion.

Subárbol del Registro

Nombre de clave

Cadena (valor de clave)

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\

DefaultToolsVersion

2.0

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0\

DefaultToolsVersion

2.0

Las claves del Registro siguientes especifican la ruta de instalación de las versiones de .NET Framework que están asociados a cada ToolsVersion.La ruta de instalación también especifica la ubicación de MSBuild.exe, que define la información del conjunto de herramientas.

Subárbol del Registro

Nombre de clave

Cadena (valor de clave)

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

MSBuildToolsPath

Ruta de instalación de .NET Framework 2.0

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

MSBuildToolsPath

Ruta de instalación de .NET Framework 3.5

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

MSBuildToolsPath

Ruta de instalación de .NET Framework 4

Bb397428.collapse_all(es-es,VS.110).gifSub- conjuntos de herramientas

Si la clave del Registro en la tabla anterior tiene una subclave, MSBuild la utiliza para determinar la ruta de acceso de un sub- conjunto de herramientas que contiene varias herramientas.La subclave siguiente es un ejemplo:

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

La propiedad de compilación VisualStudioVersion indica si un sub- conjunto de herramientas se activa.Por ejemplo, un valor VisualStudioVersion de “11,0” especifica el sub- conjunto de herramientas de .NET Framework 4,5.Para obtener más información, vea la sección de los Sub- conjuntos de herramientas Conjunto de herramientas de MSBuild (ToolsVersion).

[!NOTA]

Se recomienda evitar cambiar estos valores.Sin embargo, puede agregar dispone de valores y definir definiciones personalizadas de conjunto de herramientas, como se muestra en la sección siguiente.

Definiciones de conjuntos de herramientas personalizados

Cuando un conjunto de herramientas estándar no cumple sus requisitos de compilación, puede crear un conjunto de herramientas personalizado.Por ejemplo, puede tener un escenario de laboratorio de compilación en la que necesite un sistema independiente para compilar proyectos Visual C++ .Mediante un conjunto de herramientas personalizado, puede asignar valores personalizados al atributo ToolsVersion cuando cree los proyectos o ejecutar MSBuild.exe. De esta manera, puede utilizar la propiedad $(MSBuildToolsPath) para importar los archivos .targets de ese directorio.

Especifica un conjunto de herramientas personalizado en el archivo de configuración de MSBuild.exe (o para la herramienta personalizada que hospeda el motor MSBuild si eso es lo que usa).Por ejemplo, el archivo de configuración de MSBuild.exe podría incluir la siguiente definición de conjunto de herramientas.

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

<msbuildToolsets> también se debe definir en el archivo de configuración, como sigue.

<configSections>
   <section name="msbuildToolsets"       
       Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection, 
       Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a"
   </section>
</configSections>

[!NOTA]

Para leerse correctamente, <configSections> debe ser la primera subsección en la sección <configuration> .

ToolsetConfigurationSection es una sección de configuración personalizada que puede ser utilizada por cualquier host para la configuración personalizada.Si utiliza un conjunto de herramientas personalizado, un host no tiene que hacer nada para inicializar el motor de compilación excepto proporcionar las entradas del archivo de configuración.Definiendo las entradas del Registro, puede especificar conjuntos de herramientas para todos los equipos que se aplican a MSBuild.exe, Visual Studio y todos los hosts de MSBuild.

[!NOTA]

Si un archivo de configuración define los valores ToolsVersion que ya definida en el registro, las dos definiciones no se combinan.La definición del archivo de configuración tiene prioridad y los valores del registro para ese ToolsVersion se omiten.

Las propiedades siguientes son específicas del valor ToolsVersion que se utiliza en proyectos:

  • $ (MSBuildBinPath) se establece en el valor ToolsPath que se especifica en el registro o en el archivo de configuración donde se define ToolsVersion .$(MSBuildToolsPath) que establece en el registro o en el archivo de configuración especifica la ubicación del conjunto de herramientas.En el archivo de proyecto, se asigna a la propiedad $(MSBuildBinPath) y también a la propiedad $(MSBuildToolsPath).

  • $ (MSBuildToolsPath) es una propiedad reservada proporcionada por la propiedad de MSBuildToolsPath especificada en el archivo de configuración.(Esta propiedad reemplaza a $(MSBuildBinPath).Sin embargo, $(MSBuildBinPath) se mantiene por motivos de compatibilidad.)

También puede agregar propiedades personalizadas específicas de ToolsVersion al archivo de configuración con la misma sintaxis utilizada para agregar la propiedad MSBuildToolsPath.Para que estas propiedades personalizadas a disposición del archivo de proyecto, use el mismo nombre que el valor especificado en el archivo de configuración.

Vea también

Conceptos

Conjunto de herramientas de MSBuild (ToolsVersion)