Поделиться через


Переопределение параметров ToolsVersion

Обновлен: Ноябрь 2007

При использовании ключа /ToolsVersion (сокращенно /tv) или свойства $(ProjectToolsVersion) можно переопределить параметр ToolsVersion в файле проекта, что позволяет, например, создать проект в решении с версией набора инструментов, отличающейся от версий наборов инструментов других проектов. Можно также переопределить ToolsVersion в задаче MSBuild с помощью параметра задачи ToolsVersion.

Дополнительные сведения о параметре ToolsVersion см. в разделе Указание конкретной платформы .NET Framework с помощью MSBuild.

Переопределение параметров ToolsVersion проектов в построениях из командной строки

Хотя в проектах Visual Studio 2008 параметр ToolsVersion при построении обычно задается в файле проекта, можно использовать ключ /ToolsVersion (или /tv) в командной строке, чтобы переопределить это значение и создать все проекты и зависимости между ними с использованием другого набора инструментов. Например:

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

В этом примере все проекты собраны с использованием ToolsVersion 3.5. (Однако см. раздел "Очередность применения" далее в этом разделе.)

Если в командной строке используется ключ /tv, можно в отдельных проектах использовать дополнительно свойство $(ProjectToolsVersion), чтобы создать их с другим значением ToolsVersion по сравнению с остальными проектами в решении.

Переопределение значения ToolsVersion с использованием параметра ToolsVersion в задаче MSBuild

Задача MSBuild — основное средство для создания одного проекта из другого. Чтобы в задаче MSBuild можно было создать проект со значением ToolsVersion, отличающимся от значения, заданного в проекте, предоставляется дополнительный параметр задачи с именем ToolsVersion. Ниже представлен пример использования этого параметра.

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

Очередность применения

Значение ToolsVersion, используемое при построении проекта, определяется в соответствии со следующей очередностью применения (сверху вниз):

  1. Атрибут ToolsVersion в задаче MSBuild, используемой для построения проекта (если он задан).

  2. Ключ /tv, используемый в файле msbuild.exe (если он задан). (Подобно внешней задаче msbuild.)

  3. Атрибут ToolsVersion в файле проекта.

  4. Версия набора инструментов, заданная по умолчанию в файле конфигурации.

  5. Версия набора инструментов, заданная по умолчанию в реестре.

Пункты 1, 2 и 3 соответствуют свойствам:

  • Атрибут свойств в задаче MSBuild.

  • Ключ /p: в файле msbuild.exe.

  • Тег свойства в файле проекта.

Если при сборке значение /ToolsVersion не указывается в командной строке, решения Visual Studio 2005 будут созданы с использованием значения ToolsVersion "2.0", а решения Visual Studio 2008 — с использованием значения ToolsVersion "3.5".

См. также

Другие ресурсы

Основные возможности MSBuild

Построение под конкретную платформу .NET Framework