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


MSBuild@1 — задача MSBuild версии 1

Используйте эту задачу для сборки с помощью MSBuild.

Синтаксис

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.

Входные данные

solution - Project
string. Обязательное. Значение по умолчанию: **/*.sln.

Если вы хотите создать несколько проектов, укажите условия поиска. Вы можете использовать подстановочные знаки с одной папкой (*) и рекурсивные подстановочные знаки (**). Например, **.*proj выполняет поиск всех файлов проекта MSBuild (.*proj) во всех подкаталогах.

Убедитесь, что указанные проекты скачиваются этим конвейером сборки. На вкладке репозитория:

  • Если вы используете TFVC, убедитесь, что проект является дочерним элементом одного из сопоставлений на вкладке репозитория.
  • Если вы используете Git, убедитесь, что проект или проект находится в репозитории Git, в ветви, которую вы создаете.

Подсказка

Если вы создаете решение, рекомендуется использовать задачу сборки Visual Studio вместо задачи MSBuild.


msbuildLocationMethod - MSBuild
string. Допустимые значения: version, location (указать расположение). Значение по умолчанию: version.


msbuildVersion - версии MSBuild
string. Необязательно. Используется при msbuildLocationMethod = version. Допустимые значения: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Значение по умолчанию: latest.

Если предпочтительная версия не найдена, вместо нее используется последняя версия. В агенте macOS используется xbuild (Mono), если версия ниже 15.0.


msbuildVersion - версии MSBuild
string. Необязательно. Используется при msbuildLocationMethod = version. Допустимые значения: latest, 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Значение по умолчанию: latest.

Если предпочтительная версия не найдена, вместо нее используется последняя версия. В агенте macOS используется xbuild (Mono), если версия ниже 15.0.


архитектуры MSBuild msbuildArchitecture -
string. Необязательно. Используется при msbuildLocationMethod = version. Допустимые значения: x86 (MSBuild x86), x64 (MSBuild x64). Значение по умолчанию: x86.

Предоставляет архитектуру MSBuild (x86, x64) для выполнения.


msbuildLocation - Путь к MSBuild
string. Необязательно. Используется при msbuildLocationMethod = location.

Предоставляет путь к MSBuild.


platform - платформы
string.

Подсказка

  • Если вы нацелены на файл проекта MSBuild (.*proj) вместо решения, укажите AnyCPU (без пробелов).
  • Объявите переменную сборки, например BuildPlatform на вкладке "Переменные" (выбор Allow во время очереди) и сослаться на нее как $(BuildPlatform). Таким образом можно изменить платформу при очереди сборки и включить создание нескольких конфигураций.

конфигурации configuration -
string.

Подсказка

Объявите переменную сборки, например BuildConfiguration на вкладке "Переменные" (выбор Allow во время очереди) и сослаться на нее как $(BuildConfiguration). Таким образом можно изменить платформу при очереди сборки и включить создание нескольких конфигураций.


msbuildArguments - аргументы MSBuild
string.

Указывает дополнительные аргументы, передаваемые в MSBuild (в Windows) и xbuild (в macOS).


clean - Очистка
boolean. Значение по умолчанию: false.

Установите значение False, если вы хотите сделать эту добавочную сборку. Этот параметр может сократить время сборки, особенно если база кода велика. Этот параметр не имеет практического эффекта, если вы также не установите для репозитория Clean значение False. Установите значение True, если вы хотите перестроить весь код в проектах кода. Это эквивалентно аргументу MSBuild /target:clean. Дополнительные сведения см. в разделе параметров репозитория


maximumCpuCount - сборка параллельного
boolean. Значение по умолчанию: false.

Если целевая конфигурация MSBuild совместима с сборкой параллельно, можно проверить эти входные данные, чтобы передать /m переключиться на MSBuild (только Для Windows). Если целевая конфигурация несовместима с сборкой параллельно, проверка этого параметра может привести к file-in-use ошибкам или периодическим или несогласованным сбоям сборки.


restoreNugetPackages - восстановление пакетов NuGet
boolean. Значение по умолчанию: false.

Этот параметр не рекомендуется. Чтобы восстановить пакеты NuGet, добавьте задачу NuGet перед сборкой.


logProjectEvents - сведения о проекте записи
boolean. Значение по умолчанию: false.

При необходимости записывает сведения о временной шкале для каждого проекта (только Для Windows).


createLogFile - создание файла журнала
boolean. Значение по умолчанию: false.

При необходимости создается файл журнала (только Для Windows).


logFileVerbosity - файлов журнала
string. Необязательно. Используется при createLogFile = true. Допустимые значения: quiet, minimal, normal, detailed, diagnostic. Значение по умолчанию: normal.

Указывает детализацию файла журнала.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Следует ли использовать задачу сборки Visual Studio или задачу MSBuild?

Если вы создаете решение, в большинстве случаев следует использовать задачу сборки Visual Studio. Эта задача автоматически:

  • Задает для вас свойство /p:VisualStudioVersion. Это заставляет MSBuild использовать определенный набор целевых объектов, которые повышают вероятность успешной сборки.
  • Задает аргумент версии MSBuild.

В некоторых случаях может потребоваться использовать задачу MSBuild. Например, следует использовать его, если вы создаете проекты кода, кроме решения.

Где можно узнать больше о MSBuild?

справочник по MSBuild

справочник по командной строке MSBuild

Как создать несколько конфигураций для нескольких платформ?

  1. На вкладке "Переменные" убедитесь, что для конфигураций и платформ определены переменные. Чтобы указать несколько значений, разделите их запятыми. Рассмотрим пример.

    • Для приложения .NET можно указать BuildConfiguration со значениями отладки и выпуска, и можно указать BuildPlatform с любым значением ЦП.
    • Для приложения C++ можно указать BuildConfiguration со значениями отладки и выпуска, и можно указать BuildPlatform с любыми значениями x86 и x64.
  2. На вкладке "Параметры" выберите MultiConfiguration и укажите Multipliers, разделенные запятыми. Например, BuildConfiguration, BuildPlatform выбрать Parallel, если вы хотите распределить задания (по одному для каждого сочетания значений) нескольким агентам параллельно, если они доступны.

  3. На вкладке "Сборка" выберите этот шаг и укажите аргументы Platform и Configuration. Рассмотрим пример.

    • Платформа: $(BuildPlatform)
    • Конфигурация: $(BuildConfiguration)

Можно ли создавать файлы TFSBuild.proj?

Нельзя создавать файлы TFSBuild.proj. Эти типы файлов создаются TFS 2005 и TFS 2008. Эти файлы содержат задачи и целевые объекты поддерживаются только с помощью сборки XAML.

Устранение неполадок

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

Сбой сборки со следующей ошибкой: при запуске MSBuild произошла внутренняя ошибка.

Возможные причины
  • Измените версию MSBuild.
  • Проблемы с сторонним расширением.
  • Новые обновления Visual Studio, которые могут вызвать отсутствие сборок в агенте сборки.
  • Перемещены или удалены некоторые необходимые пакеты NuGet.
Устранение неполадок с предложениями
Запуск конвейера с помощью диагностики для получения подробных журналов

Одним из доступных вариантов диагностики проблемы является просмотр созданных журналов. Журналы конвейера можно просмотреть, выбрав соответствующую задачу и задание в сводке по выполнению конвейера.

Получение журналов выполнения конвейера получение журналов для диагностики проблем

Вы также можете настроить и скачать настраиваемый подробный журнал, чтобы помочь в устранении неполадок:

Помимо журналов диагностики конвейера, можно также проверить эти другие типы журналов, которые содержат дополнительные сведения, чтобы помочь в отладке и решении проблемы:

Попробуйте воспроизвести ошибку локально

Если вы используете размещенный агент сборки, может потребоваться воспроизвести ошибку локально. Это поможет сузить, является ли сбой результатом агента сборки или задачи сборки.

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

Подсказка

Если вы можете воспроизвести проблему на локальном компьютере, следующий шаг — исследовать проблему MSBuild.

Дополнительные сведения о размещенных агентов Майкрософт.

Чтобы настроить собственный локальный агент и запустить задания сборки:

Что еще можно сделать?

Некоторые ошибки MSBuild вызваны изменением в Visual Studio, чтобы найти сообщество разработчиков Visual Studio, чтобы узнать, была ли эта проблема зарегистрирована. Мы также приветствуем ваши вопросы, предложения и отзывы.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка
Выполняется в Агент, DeploymentGroup
требования Локальные агенты должны иметь возможности, соответствующие следующим требованиям для выполнения заданий, использующих эту задачу: msbuild
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента 1.95.0 или более поздней версии
Категория задач Строить

См. также