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


Набор инструментов MSBuild (ToolsVersion)

MSBuild использует набор инструментов задач, целевых объектов и средств построения приложения.Как правило, набор инструментов MSBuild включает файл microsoft.common.tasks, файла microsoft.common.targets и компиляторы, как csc.exe и vbc.exe.Большинство наборы инструментов можно использовать, чтобы компилировать приложения до более одной версии платформы .NET Framework и несколько платформ системы.Однако MSBuild набор инструментов версии 2.0 можно использовать только для ПУСТО .NET Framework 2.0.

Атрибут ToolsVersion

Определение набора инструментов в атрибуте ToolsVersion в элементе проект в файле проекта.В следующем примере указывается, что проект должен быть создан с помощью набора инструментов MSBuild 2.0.

<Project ToolsVersion="2.0" ... </Project>

Принцип действия атрибута ToolsVersion

При создании проекта в Visual Studio или обновление существующего проекта атрибута с именем ToolsVersion автоматически включается в файле проекта и его значение соответствует версии платформы .NET Framework, включенной в выпуске Visual Studio.Дополнительные сведения см. в разделе Указание конкретной версии или профиля платформы .NET Framework.

Если значение ToolsVersion определено в файле проекта MSBuild, значения которых используются для определения значения свойств набора инструментов, доступные для проекта.Одно свойство набора инструментов $(MSBuildToolsPath), которое задает путь к инструментам платформы .NET Framework.Только свойство набора инструментов (или $(MSBuildBinPath)) требуются.

В следующем примере файл Microsoft.CSharp.targets MSBuild с помощью свойства зарезервированных MSBuildToolsPath.

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Можно изменить значение MSBuildToolsPath путем указания пользовательского набора инструментов.Дополнительные сведения см. в разделе Стандартные и настраиваемые конфигурации наборов инструментов.

При построении решения из командной строки и указать ToolsVersion для msbuild.exe, все проекты и их зависимости проект-к- проекта создаются в соответствии с этим ToolsVersion, даже если каждый проект в решении устанавливает собственное ToolsVersion.Чтобы указать значение ToolsVersion на а в основе проекта см. в разделе Переопределение параметров ToolsVersion.

Атрибут ToolsVersion также используется для переноса проекта.Например, при открытии проекта Microsoft Visual Studio 2008 в Visual Studio 2010, файл проекта обновления, чтобы включить ToolsVersion=" 4.0 ".Если затем попытка открыть этот проект в Visual Studio 2008, оно не распознает обновленное ToolsVersion и поэтому не создает проект, как если бы атрибут по-прежнему был установлен в значение 3.5.

и Visual Studio 2010 и Visual Studio 2012 используют ToolsVersion 4.0.В большинстве случаев можно открыть проект в обеих версиях Visual Studio без изменения.

Sub- наборы инструментов, описанных ниже в этом подразделе, позволяют MSBuild в автоматически переключают, которое устанавливает средства для использования на основе контексте, в котором выполняется построение.Например, MSBuild используется более новый набор средств, когда он работы в Visual Studio 2012, чем при его работы в Visual Studio 2010, не является явно изменять файл проекта.Дополнительные сведения см. в разделе Практическое руководство. Изменение система проекта так как активируется в нескольких версий Visual Studio.

Реализация набора инструментов

Реализуйте набор инструментов, выбрав пути различных средств, целевых объектов и задач, которые составляют набор инструментов.Инструменты в MSBuild определяет набор инструментов, полученные из следующих источников:

  • Папка платформы .NET Framework.

  • Дополнительные управляемые средства.

Управляемые средства включают ResGen.exe и TlbImp.exe.

MSBuild 2 предоставляет способа получения доступа к набора инструментов:

  • С помощью свойств набора инструментов

  • С помощью методов ToolLocationHelper

Свойства набора инструментов определяют пути сервис.MSBuild используется значение атрибута ToolsVersion в файле проекта, чтобы найти соответствующий раздел реестра, а затем использует сведения в разделе реестра для задания свойств набора инструментов.Например, если ToolsVersion имеет значение 4.0, MSBuild задает свойства набор инструментов, согласно данному разделу реестра: HKLM \ software \ Microsoft \ MSBuild \ ToolsVersions \ 4.0.

Эти свойства набора инструментов:

  • MSBuildToolsPath задает путь к инструментам платформы .NET Framework.

  • SDK40ToolsPath указывает путь дополнительных управляемых средств в MSBuild 4.0.

  • SDK35ToolsPath указывает путь дополнительных управляемых средств в MSBuild 3.5.

Кроме того, можно задать набор инструментов программными средствами путем вызова методов класса ToolLocationHelper.Класс включает следующие методы:

Bb383796.collapse_all(ru-ru,VS.110).gifSub- наборов инструментов

Как описано ранее в этом разделе, MSBuild используется раздел реестра для определения основных средств.Если ключ имеет подраздел, MSBuild используется для указания пути sub- набор инструментов, который содержит дополнительные средства.В этом случае набор инструментов определен, объединяя определения свойства, определенные в обоих ключах.

ПримечаниеПримечание

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

Sub- наборы инструментов будет активным в присутствии для свойства построения VisualStudioVersion.Это свойство может принимать одно из следующих значений:

  • "10,0" указывает sub- набор инструментов платформы .NET Framework 4

  • "11,0" указывает sub- набор инструментов платформы .NET Framework 4,5

Во время построения, MSBuild автоматически определяет и задает для свойства значение по умолчанию VisualStudioVersion, если оно еще не задано.

MSBuild предоставляет перегруженных методов ToolLocationHelper, которые добавляют значение перечисления VisualStudioVersion в качестве параметра.Кроме того, MSBuild предоставляет эти новые методы для возврата пути дополнительных собственных средств:

  • GetPathToWindowsSdk

  • GetPathToWindowsSdkFile

Эти новые методы также принимают значение перечисления VisualStudioVersion как параметр, чтобы указать, sub- набор инструментов, который необходимо использовать.Перечисление VisualStudioVersion может иметь одно из следующих значений:

  • VisualStudio10

  • VisualStudio11

  • VisualStudioLatest

Sub- наборы инструментов, представленные в платформе .NET Framework 4,5.

См. также

Основные понятия

Стандартные и настраиваемые конфигурации наборов инструментов

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

MSBuild: обзор настройки для различных версий