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


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

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

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

Переопределение параметров 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 Concepts

Построение для определенных версий .NET Framework