Набор инструментов 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.Класс включает следующие методы:
GetPathToDotNetFramework возвращает путь папки платформы .NET Framework.
GetPathToDotNetFrameworkFile возвращает путь к файлу в папке платформы .NET Framework.
GetPathToDotNetFrameworkSdk возвращает путь к управляемой папки сервис.
GetPathToDotNetFrameworkSdkFile возвращает путь к файлу, который обычно найти в управляемой папке сервис.
Sub- наборов инструментов
Как описано ранее в этом разделе, 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.
См. также
Основные понятия
Стандартные и настраиваемые конфигурации наборов инструментов