Использование шаблона по умолчанию для процесса сборки

Шаблон по умолчанию (TFVC icon TfvcTemplate.12.xaml или Git icon GitTemplate.12.xaml) позволяет быстро определить базовый процесс сборки и проверки кода. При необходимости можно контролировать сборку кода, тестирование и другие процессы, например скрипты, которые выполняет Team Foundation Build (TFBuild).

Начало работы

  1. (Необязательно) Перед созданием нового определения сборки на домашней странице Team Explorer (сочетание клавиш CTRL + 0, H) откройте решение для сборки, чтобы автоматически отобразить его в окне Проекты.

  2. Проверьте в Team Explorer, что вы подключены к командному проекту (нажмите клавиши CTRL+0, C), а затем откройте страницу Сборки (нажмите клавиши CTRL+0, B).

  3. Нажмите на ссылку Создать определение сборки или выделите сборку, откройте ее контекстное меню и выберите Редактировать определение сборки.

    Совет

    Если появляется сообщение об ошибке TF225001, настройте контроллер сборок.

  4. На вкладке Процесс в разделе Шаблон процесса сборки по умолчанию выбирается "Шаблон по умолчанию".

    Default Template build process

    Предупреждение

    Вы подключены к Git icon командному проекту Git, размещенному в Visual Studio Online?Отсутствуют параметры Переопределение извлечения и Проекты?

    Parameters from the wrong Git default template

    См. раздел Как убедиться, что используется правильный шаблон процесса сборки Git по умолчанию в Visual Studio Online?

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

  6. Заполнив поля на вкладке Процесс, определите параметры процесса сборки на других вкладках.

    Для получения дополнительной информации см. Создание или изменение определения сборки.

Выберите действие.

  • Получение кода

  • Сборка кода

    • Указание проектов для сборки

    • Определение платформ и конфигураций для сборки

    • Определение параметров сборки

  • Тестирование кода и анализ влияния на тесты

  • Запуск других процессов во время сборки

  • Управление способом выполнения сборки серверами

    • Определение агентов сборки, обрабатывающих сборку

    • Определение временных ограничений для агента сборки

  • Управление результатом сборки

    • Определение местоположения выходных данных сборки

    • Обеспечение информативности имен завершенных сборок для команды

    • Публикация символов из сборки

    • Привязка и создание рабочих элементов

    • Создание рабочего элемента при ошибке

    • Установка метки на исходный код

  • Получить ответы на общие вопросы

Получение кода

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

Цель...

Задайте этот параметр...

Инструкции по применению

Укажите, следует ли очищать рабочую область или репозиторий Git агента сборки перед обработкой сборки

TFVC icon TFVC: Очистка рабочей области

Git icon Git: Очистка репозитория

Выберите True для удаления всех существующих выходных данных и файлов исходного кода перед обработкой сборки. Этот параметр позволяет использовать максимально тщательный процесс компиляции для выявления проблем в процессе сборки.

Совет

Если процесс сборки не требует очистки рабочей области или репозитория, можно значительно сократить время выполнения сборки, задав этому параметру значение False.

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

Построение определенной версии исходного кода

TFVC icon TFVC: Получить версию

Git icon Git: Переопределение извлечения

TFVC: определите спецификацию версии, которая указывает, какую версию необходимо собрать.

Git: определите извлекаемую ветвь или идентификатор фиксации.

Сборка кода

Вы можете компилировать код с помощью MSBuild.

Указание проектов для сборки

В поле Проекты в разделе Сборка в таблице Параметры процесса сборки можно указать одно или несколько решений или проектов кода для сборки. Необходимо указать хотя бы одно решение или проект.

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

В поле Проекты можно нажать кнопку с многоточием (...) , чтобы открыть диалоговое окно Решения/Проекты и указать в нем решения или проекты для сборки.

Если вы хотите заполнить поле Проекты командного проекта TFVC вручную, укажите полный путь к системе управления версиями для каждого проекта или решения, предназначенного для сборки. Значения должны быть разделены запятыми, как показано в примере:

$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln

Важно!

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

Определение платформ и конфигураций для сборки

В поле Конфигурации можно указать платформы и конфигурации, которые требуется собрать. Например, в этом поле можно указать значение "Выпуск|x86", чтобы выполнить построение только конфигурации выпуска 32-разрядной версии проекта C++.

Совет

При наличии большой базы кода построение только необходимых платформ и конфигураций поможет существенно увеличить скорость обработки построения.

Если оставить поле Конфигурации пустым, будет выполнена сборка конфигурации и платформы, определенных по умолчанию в каждом решении или проекте.

В поле Конфигурации можно нажать кнопку с многоточием (...), чтобы открыть диалоговое окно Конфигурации и указать в нем предназначенные для сборки элементы. Можно также указать их вручную.

Каждая конфигурация в поле Конфигурации должна указываться в следующей форме:

Конфигурация|Платформа

Данные заполнители следует заменить следующими значениями.

  • Конфигурация это такое значение, как "Отладка", "Выпуск" или "Все конфигурации".

  • Платформа — это значение Win32, x86, x64 или "Любой ЦП".

Конфигурации в списке должны разделяться запятыми.

Например, если необходимо собрать как отладочную конфигурацию, так и конфигурацию выпуска для проекта C#, в поле Конфигурации следует указать значения "Отладка|Любой ЦП", "Выпуск|Любой ЦП".

Токены, используемые для конфигурации и платформы, должны соответствовать токенам, которые настраиваются в свойствах решения или проекта кода. Несовпадение этих значений может привести к непредвиденным результатам после завершения сборки.

Примечание

Если вы собираете отдельные проекты кода вместо файла решения и требуется определить "Любой ЦП" в качестве платформы, необходимо указать AnyCPU вместо "Любой ЦП".

Определение параметров сборки

Можно управлять несколькими параметрами сборок.

Цель...

Задайте этот параметр...

Инструкции по применению

Определение необходимости повторного выполнения сборки

Сборка, Очистить сборку

Задайте значение True, если требуется повторно выполнить сборку всего кода в проектах кода. Это равноценно MSBuild /target:clean. Этот параметр учитывается, только когда параметр Очистить репозиторий имеет значение False.

Совет

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

Проверка кода по схеме слоев

Сборка, Дополнительно, Аргументы MSBuild

Включите в значение этого параметра следующую строку: /p:ValidateArchitectureOnBuild = true.

Для получения дополнительной информации см. Проверка кода по схеме слоев.

Задание аргументов командной строки, передаваемых в MSBuild

Сборка, Дополнительно, Аргументы MSBuild

Если для процесса сборки необходима передача аргументов в MSBuild, введите их в поле параметра Аргументы MSBuild. Для получения дополнительной информации см. Справочник по командной строке MSBuild.

Определение разрядности версии MSBuild, которая будет использоваться для обработки сборки

Сборка, Дополнительно, Платформа MSBuild

Укажите одно из следующих значений.

  • Укажите Авто, если MSBuild нужно запускать на ЦП, разрядность которого совпадает с разрядностью ЦП службы Служба построения Team Foundation, установленной на агенте построения.

  • Укажите X86, чтобы всегда обрабатывать это построение с помощью 32-разрядной версии MSBuild.

    Поскольку Visual Studio выполняется как 32-разрядное приложение, при обработке сборки агентом сборки, использующим 64-разрядную версию службы Служба построения Team Foundation, могут возникнуть проблемы. Проблемы такого рода можно решить, задав X86.

Если задано это значение, следует убедиться (например, с помощью тега, как описано ранее в этом разделе), что сборка обрабатывается агентом сборки, размещенным на 64-разрядном компьютере сборки. В противном случае построение завершится ошибкой.

Запуск других процессов

Во время сборки можно выполнять другие процессы.

Выполнение анализа кода

Для поиска типовых дефектов во время сборки можно проанализировать код. Задайте параметр Выполнить анализ кода в дополнительных параметрах сборки.

  • Выберите Как настроено для анализа каждого проекта кода, в котором включена эта функция.

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

  • Выберите Никогда, чтобы пропустить анализ кода.

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

Управление способом выполнения сборки серверами

Можно управлять тем, как серверы сборок выполняют вашу сборку

Определение агентов сборки, обрабатывающих сборку

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

  • Фильтр имен — указав имя агента в этом поле, можно отфильтровать агенты сборки, которые используются для обработки этого определения сборки. Можно также определить набор имен с помощью подстановочных символов * и ?. Например, можно указать CI*, чтобы задать любой агент, чье имя начинается с символов CI. Агентами, соответствующими этому критерию, будут, в частности, CI, CI1 и CI_Agent2.

  • Фильтр тегов. Укажите один или несколько тегов, чтобы это построение выполнялось только агентами построения с соответствующими тегами. Обычно теги применяются к нескольким агентам построения, чтобы зарезервировать их для определенных целей. Пускай, например, нужно настроить агент построения на компьютере построения, предназначенном для обработки построений с условным возвратом. Примените к этому агенту построения условный тег. И наконец, примените тег условного возврата к определению построения, чтобы оно обрабатывалось только агентом, отмеченным таким же тегом. Для указания тегов нажмите кнопку с многоточием (...).

    Примечание

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

  • Оператор сравнения тегов. В меню выберите одно из следующих значений:

    • MatchExactly. Выберите это значение, чтобы определение сборки обрабатывалось только агентами сборки с набором тегов, полностью совпадающим с набором, заданным в поле Фильтр тегов. Если не указано ни одного тега, определение построения может быть обработано любым агентом.

      Совет

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

    • MatchAtLeast. Выберите это значение, если требуется, чтобы определение сборки обрабатывалось всеми агентами сборки, имеющими набор тегов, заданный в поле Фильтр тегов. Если не указано ни одного тега, определение построения может быть обработано только агентом, не имеющим тегов.

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

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

Цель...

Задайте этот параметр...

Инструкции по применению

Задать максимально допустимое время обработки построения агентом построения

Максимальное время выполнения

Введите значение интервала времени в формате чч:мм:сс. Например, если указано значение 04:30:15, а агент построения не завершил свою работу спустя 4 часа, 30 минут и 15 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить агенту построения неограниченное время для обработки построения.

Задать максимально допустимое время для назначения запроса построения агенту построения

Максимальное время ожидания

Введите значение интервала времени в формате чч:мм:сс. Например, если указано значение 01:30:45, а построение не было назначено агенту построения спустя 1 час, 30 минут и 45 секунд, построение завершится ошибкой превышения времени ожидания. Укажите значение 00:00:00, если нужно предоставить контроллеру построений неограниченное время для поиска агента построения, который будет обрабатывать это определение построения.

Управление результатом сборки

Определение местоположения выходных данных сборки

Чтобы указать, куда TFBuild помещает выходные данные сборки, выберите:

  • SingleFolder, чтобы поместить все выходные файлы сборки вместе в папку сброса.

  • PerProject для группирования выходных данных сборки во вложенные папки в папке сброса для каждого решения или проекта кода, указанного в поле Проекты.

  • AsConfigured, чтобы оставить двоичные файлы в папке источников агента сборки, упорядоченные в ту же структуру вложенных папок, что и при сборке кода на компьютере разработки в Visual Studio. Эта структура определяется в проектах кода.

    При использовании этого параметра TFBuild не будет копировать выходные данные в папку сброса. Вместо этого можно программировать скрипты так, чтобы выходные данные копировались в расположение, заданное TF_BUILD_BINARIESDIRECTORY. Тогда они будут сбрасываться в расположение промежуточного хранения. См. раздел о скриптах, выполняемых после сборки или тестирования.

Обеспечение информативности имен завершенных сборок для команды

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

Публикация символов из сборки

Задайте параметр Путь для публикации символов, чтобы индексировать и публиковать символьные данные и пользоваться такими функциями, как отладка с ведением журнала. См. раздел Индексация и публикация символьных данных.

Сопоставление наборов изменений, фиксаций и рабочих элементов

Процесс сборки автоматически связывает каждую выполненную сборку со всеми наборами изменений или фиксациями, внесенными в код, а также со связанными с ними рабочими элементами. Это поведение невозможно отключить, но в разделе Дополнительно можно решить, необходимо ли Обновить рабочие элементы номером сборки, выбрав значение True или False.

Как процесс сборки определяет, когда необходимо связывать наборы изменений, фиксации и рабочие элементы?

Создание рабочего элемента при ошибке

Для параметра Дополнительно, Создать рабочий элемент при ошибке выберите значение True, если при сбое сборки требуется, чтобы процесс сборки создавал ошибку и назначал ее пользователю, который TFVC icon вернул набор изменений TFVC или Git icon отправил фиксацию Git.

Установка метки на исходный код

Для параметра TFVC icon Системы управления версиями TF, Пометка источников выберите значение True, если требуется автоматически помечать каждый файл исходного кода меткой, позволяющей вашей команде легко определить версию каждого файла, включенного в завершенную сборку. Этот параметр не применяется к Git icon командным проектам Git.

Сведения о том, как TFBuild определяет, какую версию следует пометить, см. в статье Насколько хорошо было это построение?

Вопросы и ответы

Как убедиться, что используется правильный шаблон процесса сборки Git по умолчанию в Visual Studio Online?

Вы подключены к Git icon командному проекту Git, размещенному в Visual Studio Online? Отсутствуют параметры Переопределение извлечения и Проекты?

Открывается ли Шаблон по умолчанию (GitTemplate.xaml) после отображения сведений?

The wrong Git default template

Если да, выберите GitTemplate.12.xaml. После этого отобразятся параметр Переопределение извлечения и кнопка обзора в параметре Проекты.

The correct Git default template

В: как процесс сборки определяет, когда необходимо связывать наборы изменений, фиксации и рабочие элементы?

О: каждое определение сборки ведет собственную запись наборов изменений (TFVC), фиксаций (Git) и рабочих элементов, которые ожидают связывания со следующей завершенной сборкой.

Допустим, например, что набор изменений 382 построен с помощью построений A и B. Построение A помещено в очередь и успешно завершено. Построение B помещено в очередь и завершилось неудачей. Набор изменений 382 теперь связан с успешно завершенным построением А и неудачно завершенным построением В. В дальнейшем набор изменений 382 не будет связан со следующим завершенным построением А, но будет связан со следующим завершенным построением В.

Сведения о том, как TFBuild определяет, какую версию следует сопоставить, см. в статье Насколько хорошо было это построение?

Вопрос. Мне нужен мой процесс построения для выполнения других задач.Как его настроить?

Ответ. Настройка процесса