Переопределение параметров 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, используемое при построении проекта, определяется в соответствии со следующей очередностью применения (сверху вниз):
Атрибут ToolsVersion в задаче MSBuild, используемой для построения проекта (если он задан).
Ключ /tv, используемый в файле msbuild.exe (если он задан). (Подобно внешней задаче msbuild.)
Атрибут ToolsVersion в файле проекта.
Версия набора инструментов, заданная по умолчанию в файле конфигурации.
Версия набора инструментов, заданная по умолчанию в реестре.
Пункты 1, 2 и 3 соответствуют свойствам:
Атрибут свойств в задаче MSBuild.
Ключ /p: в файле msbuild.exe.
Тег свойства в файле проекта.
Если при сборке значение /ToolsVersion не указывается в командной строке, решения Visual Studio 2005 будут созданы с использованием значения ToolsVersion "2.0", а решения Visual Studio 2008 — с использованием значения ToolsVersion "3.5".