Стандартные и настраиваемые конфигурации наборов инструментов
Набор инструментов MSBuild содержит задачи, целевые объекты и средства, которые можно использовать для построения проекта приложения.MSBuild включает стандартный набор инструментов, но можно также создать пользовательские наборы инструментов.Сведения о том, как определить набор инструментов, см. в разделе Набор инструментов MSBuild (ToolsVersion)
Стандартные конфигурации наборов инструментов
MSBuild 4.5 включает следующие стандартные наборы инструментов:
ToolsVersion |
Путь набора инструментов (как указано в свойстве построением MSBuildToolsPath или MSBuildBinPath) |
---|---|
2.0 |
путь установки Windows\ Microsoft.Net \ Framework \ v2.0.50727 \ .NET |
3.5 |
путь установки Windows\ Microsoft.NET \ Framework \ v3.5.20223 \ .NET |
4.0 |
путь установки Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ .NET |
Значение ToolsVersion указывает, какой набор инструментов, который используется в проекте Visual Studio.Указать ToolsVersion как атрибут в элементе проект файла проекта, но можно переопределить этот атрибут с помощью переключателя /toolsversion в командной строке.Дополнительные сведения об этом атрибуте, этот переключатель и другие способы определения ToolsVersion см. в разделе Переопределение параметров ToolsVersion.
Если ToolsVersion не указан, возвращаются следующие ключи определяют ToolsVersion.
Узел реестра |
Имя ключа |
Значение строки раздела реестра |
---|---|---|
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\ |
DefaultToolsVersion |
2.0 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0\ |
DefaultToolsVersion |
2.0 |
Следующие разделы реестра, определяющие путь установки версий платформы .NET Framework, которые сопоставлены с каждым ToolsVersion.Путь установки также определяет расположение MSBuild.exe, который определяет сведения о наборе инструментов.
Узел реестра |
Имя ключа |
Значение строки раздела реестра |
---|---|---|
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\ |
MSBuildToolsPath |
.NET Framework 2.0 установит путь |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\ |
MSBuildToolsPath |
.NET Framework 3.5 установит путь |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\ |
MSBuildToolsPath |
Платформа .NET Framework 4 установит путь |
Sub- наборов инструментов
Если раздел реестра в предыдущей таблице есть подраздел, MSBuild используется для указания пути sub- набор инструментов, который содержит несколько средств.В следующем примере подраздела:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0
Свойство построения VisualStudioVersion указывает, будет ли sub- набор инструментов активно.Например, значение VisualStudioVersion "11,0" указывает sub- набор инструментов платформы .NET Framework 4,5.Дополнительные сведения см. в разделе Sub- наборы инструментов Набор инструментов MSBuild (ToolsVersion).
Примечание |
---|
Рекомендуется избегать изменять эти параметры.Однако можно добавить собственные параметры и указывать компьютер- широкие пользовательские определения для набора инструментов, как в следующем разделе описаны. |
Пользовательские определения для набора инструментов
Если стандартный набор инструментов не удовлетворяет необходимым требованиям построения, можно создать пользовательский набор инструментов.Например, можно использовать скрипт лаборатории построения, в котором необходимо иметь отдельные систему для построения проектов Visual C++.С помощью пользовательского набора инструментов, можно присвоить пользовательские значения к атрибуту ToolsVersion при создании проектов или запуска MSBuild.exe. С помощью этого можно также использовать свойство $(MSBuildToolsPath) чтобы импортировать файлы .targets из этого каталога.
Определение пользовательского набора инструментов в файле конфигурации для MSBuild.exe (или для настраиваемого средства, размещение обработчик MSBuild то, что, если используется).Например, файл конфигурации для MSBuild.exe может включать следующее определение набора инструментов.
<msbuildToolsets default="3.0">
<toolset toolsVersion="4.0">
<property name="MSBuildToolsPath"
value="C:\Windows\Microsoft .NET\Framework\v3.0" />
</toolset>
</msbuildToolsets>
<msbuildToolsets> необходимо также задать в файле конфигурации следующим образом.
<configSections>
<section name="msbuildToolsets"
Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
</section>
</configSections>
Примечание |
---|
Чтение <configSections> быть правильно, должно быть первым подразделом в разделе <configuration>. |
ToolsetConfigurationSection — это пользовательская часть конфигурации, которую может использовать любой сервер в качестве пользовательской конфигурации.Если используется пользовательский набор инструментов, то серверу ничего не нужно делать для инициализации ядра построения, кроме ввода файла конфигурации.Определив записи в реестре, можно задать действующий в пределах компьютера набор инструментов, применимый к MSBuild.exe, Visual Studio, и всем серверам MSBuild.
Примечание |
---|
Если файл конфигурации задает настройки для ToolsVersion, который уже был определен в реестре 2 определения не объединитьы.Определение в файле конфигурации имеет более высокий приоритет и игнорируются параметры в реестре для ToolsVersion. |
Следующие свойства, относящиеся к значению ToolsVersion, которое используется в проектах:
$ (MSBuildBinPath) установлено в значение ToolsPath, которое определяется либо в реестре, либо в файле конфигурации, в котором ToolsVersion указано.$(MSBuildToolsPath) параметра в реестре или в файле конфигурации указывает расположение набора инструментов.В файле проекта это соответствует свойству $(MSBuildBinPath), а также свойству $(MSBuildToolsPath).
$ (MSBuildToolsPath) зарезервированное свойство, предоставленном свойством MSBuildToolsPath, указанным в файле конфигурации.(Это свойство заменяет собой $(MSBuildBinPath).Однако для обеспечения совместимости используется $(MSBuildBinPath)).
Вы можете также добавить в файл конфигурации пользовательские и зависящие от ToolsVersion свойства, используя тот же самый синтаксис, который применяется для добавления свойств MSBuildToolsPath.Чтобы сделать доступными пользовательские свойства в файле проекта используйте одно и то же имя, что и имя значения, заданные в файле конфигурации.