Compartir a través de


Invalidar el valor de la versión de herramientas

Actualización: noviembre 2007

El modificador (o /tv abreviado) /ToolsVersion o la propiedad $(ProjectToolsVersion) se pueden utilizar para invalidar el valor de la versión de herramientas en el archivo de proyecto, lo que permite, por ejemplo, generar un proyecto en una solución con una versión del conjunto de herramientas diferente de la de otros proyectos. También puede invalidar la versión de herramientas de la tarea de MSBuild mediante el parámetro de tarea ToolsVersion.

Para obtener más información acerca de la versión de herramientas, vea Especificar versiones concretas de .NET Framework con MSBuild.

Invalidar el valor de la versión de herramientas de los proyectos en compilaciones de la línea de comandos

Aunque los proyectos de Visual Studio 2008 normalmente se generan con la versión de herramientas especificada en el archivo de proyecto, puede utilizar el modificador /ToolsVersion (o /tv) en la línea de comandos invalidar ese valor y generar todos los proyectos y sus dependencias entre proyectos con un conjunto de herramientas diferente. Por ejemplo:

C:\windows\microsoft.net\framework\v3.5>msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

En este ejemplo, todos los proyectos se generan con ToolsVersion 3.5. (No obstante, vea la sección "Orden de prioridad" más adelante en este capítulo.)

Cuando se utiliza el modificador /tv en la línea de comandos, también puede utilizar la propiedad $(ProjectToolsVersion) en proyectos individuales para generarlos con un valor de versión de herramientas diferente de otros proyectos de la solución.

Invalidar el valor de la versión de herramientas mediante el parámetro ToolsVersion de la tarea MSBuild

La tarea MSBuild es el principal medio que tiene un proyecto para generar otro. Para que la tarea MSBuild genere un proyecto con una versión de herramientas diferente de la especificada en el proyecto, dispone de un parámetro de tarea opcional denominado ToolsVersion. A continuación encontrará un ejemplo de su uso:

<MSBuild Projects="MyProject1" 
         Targets="Build" 
         Properties="Configuration=Debug" 
         ToolsVersion="2.0">
    <Output TaskParameter="TargetOutputs" ItemName="Outputs" /> 
</MSBuild>

Orden de prioridad

El orden de prioridad, de mayor o menor, utilizado para determinar la versión de herramientas utilizada para generar un proyecto es:

  1. El atributo ToolsVersion de la tarea MSBuild utilizado para generar el proyecto, si existe.

  2. El modificador /tv utilizado en msbuild.exe, si existe. (Similar a la tarea de msbuild exterior.)

  3. El atributo ToolsVersion del archivo de proyecto.

  4. La versión de herramientas predeterminada del archivo de configuración.

  5. Las versión de herramientas predeterminada del Registro.

Los números 1, 2 y 3 son iguales que las propiedades:

  • Atributos de propiedad de la tarea MSBuild

  • modificador /p: de msbuild.exe

  • Etiqueta de la propiedad en el archivo de proyecto

Si no especifica un valor para /ToolsVersion al generar en la línea de comandos, las soluciones de Visual Studio 2005 se generarán con un valor de ToolsVersion de "2.0" y las soluciones de Visual Studio 2008 se generarán con un valor de ToolsVersion de "3.5".

Vea también

Otros recursos

Conceptos de MSBuild

Generar para versiones concretas de .NET Framework