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.
# 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.

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

solution - Проекта
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 (Mono) используется, xbuild если версия ниже 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 (Mono) используется, xbuild если версия ниже 15.0.


msbuildArchitecture - Архитектура MSBuild
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.

Задает уровень детализации файла журнала.


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

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

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

Нет.

Remarks

Следует ли использовать задачу Сборка 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
Capabilities Эта задача не удовлетворяет требованиям для последующих задач в задании.
Ограничения команд Любой
Устанавливаемые переменные Любой
Версия агента 1.95.0 или более поздней версии
Категория задач Сборка

См. также раздел