Настройка шаблона процесса сборки

Если в процессе сборки требуется выполнять действия, недоступные в шаблоне по умолчанию, можно настроить шаблон процесса сборки таким образом, чтобы он следовал вашим собственным инструкциям Windows Workflow Foundation. При использовании собственных инструкций можно выполнять код .NET Framework, реализованный в объектах CodeActivity. Можно выполнять действия, которые встроены в Team Foundation Build (TFBuild), предоставлены сторонними разработчиками или при необходимости созданы вами.

Совет

Если функции настраиваемого процесса сборки можно закодировать в пакетном файле Windows или скрипте PowerShell, можно загрузить скрипт и запустить его в рамках процесса сборки.Этот подход может быть быстрее и проще, чем создание настраиваемого процесса сборки.См. раздел Выполнение скрипта в процессе сборки.

  • Запуск решения пользовательского процесса сборки и создание шаблона

  • Использование пользовательского шаблона в определении сборки

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

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

Перед внедрением собственных инструкций извлеките копию шаблона по умолчанию из Team Foundation Server и добавить ее в проект кода Visual Basic.

Важно!

Вы работаете в Значок Gitкомандном проекте Git?Планируется отправить двоичные файлы действий процесса сборки?В этом случае хранение двоичных файлов (особенно множества версий больших файлов) может привести к значительному увеличению размера репозитория Git.Двоичные файлы пользовательского процесса сборки рекомендуется хранить в репозитории отдельно от кода, из которого выполняется сборка приложения.Можно либо создать отдельный командный проект для процессов сборки, либо создать дополнительный репозиторий в существующем командном проекте.

  1. Подключитесь к командному проекту (сочетание клавиш CTRL + 0, C) (и при необходимости к репозиторию Git Значок Git), в котором планируется хранить источник процесса сборки.

  2. Создайте новый проект кода (сочетание клавиш CTRL+SHIFT+N).

    В частности, создайте новое решение (например, BuildProcessSource), содержащее новый проект кода библиотеки действий рабочих процессов Visual Basic (например, Templates). Добавьте решение в новый каталог в системе управления версиями в понятное расположение.

    Значок TFVC Пример TFVC: C: \Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\

    Значок Git Пример Git: C:\Users\YourName\Source\Repos\BuildProcesses\

    Создание проекта с кодом, который будет содержать новый шаблон

    Зачем необходим проект кода для изменения собственного шаблона?

  3. На странице сборок (сочетание клавиш CTRL + 0, B) создайте или измените определение сборки.

    "Создать определение сборки" или "Редактировать определение сборки"

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

    Значок TFVC Пример TFVC: C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Templates

    Значок Git Пример Git: C:\Users\YourName\Source\Repos\BuildProcesses\BuildProcessSource\Templates

    Ссылка "Загрузить" на вкладке "Процесс" определения сборки

    Диалоговое окно “Сохранить как”

  5. В обозревателе решений (сочетание клавиш CTRL + ALT + L) добавьте шаблон в проект Templates.

    Добавление в проект файла шаблона процесса сборки

    Диалоговое окно ''Добавление существующего элемента''

    Файл Activity1.xaml не требуется, поэтому при желании его можно удалить.

  6. Для свойства "Действие сборки" шаблона задайте значение "Содержимое".

    Установка для действия при сборке значения "Содержание"

  7. Добавьте следующие ссылки в проект кода Templates.

    Как добавить эти ссылки в проект кода?

    Сохраните проект кода.

  8. Реализуйте сообщение "Здравствуй, мир!", чтобы после возврата и выполнения шаблона быть уверенными, что шаблон работает. Для этого перетащите действие WriteBuildMessage в рабочий процесс и для его свойства BuildMessageImportance задайте значение Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    Действие WriteBuildMessage добавлено в шаблон

  9. Сохраните шаблон и отправьте новое решение. Выполните возврат ожидающих изменений при работе в TFVC Значок TFVC (сочетание клавиш CTRL + 0, P) или зафиксируйте (сочетание клавиш CTRL + 0, G) и отправьте их при работе в Git Значок Git.

    Отправка изменений с использованием TFVC или Git

Использование пользовательского шаблона в определении сборки

После отправки пользовательского шаблона процесса сборки в командный проект, как описано выше, этот шаблон можно использовать из определений сборки.

  1. На странице сборок (сочетание клавиш CTRL + 0, B) создайте или измените определение сборки.

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

    Определение сборки, вкладка "Процесс", кнопка "Создать"

  3. После нажатия кнопки Создать:

    • TFVC: введите или найдите путь к шаблону в Team Foundation Server.

    • Git: введите или найдите путь к шаблону на компьютере разработчика.

  4. После определения пути к шаблону его можно выбрать в списке.

    CustomTemplate выбрано в определении сборки

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

  6. На странице сборок (сочетание клавиш CTRL + 0, B) поместите сборку в очередь.

    Постановка сборки в очередь со страницы "Сборки"

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

    Сообщение "Здравствуй, мир!" отображается в журнале сборки

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

В. Система заблокировала мои действия, поскольку у меня нет разрешения.Как его получить?

О. См. раздел Справочник по разрешениям Team Foundation Server

В. Зачем необходим проект кода для изменения собственного шаблона?

О. Шаблоны следует изменять из проекта кода по следующим причинам

  • Попытки изменить шаблон вне контекста проекта кода могут привести к проблемам.

  • Если действие процесса сборки не разрабатывается в том же решении, что и шаблоны процесса сборки, могут возникнуть проблемы. Если работать таким образом, то при необходимости использовать одно из пользовательских действий в шаблоне процесса действие будет доступно на панели элементов конструктора рабочих процессов. Однако исходный код пользовательских действий необходимо хранить в отдельном проекте кода, а не в том, в котором содержатся пользовательские шаблоны процесса сборки. См. раздел Использование и разработка пользовательских действий процесса сборки.

В. Как добавить ссылки, необходимые для работы с рабочим процессом TFBuild?

О. Можно использовать диспетчер ссылок для добавления ссылок на библиотеки

Просмотрите ссылки проекта кода и откройте диспетчер ссылок.

Ссылки на проект кода в пользовательском шаблоне

Диалоговое окно "Диспетчер ссылок"

Перейдите к папке C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0, затем выберите и добавьте:

Диалоговое окно "Выберите файлы, на которые нужно установить ссылки"

Диалоговое окно "Диспетчер ссылок"

В. Можно ли использовать шаблон в нескольких командных проектах?

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

В. Если я изменю свой шаблон, что произойдет в определениях сборки, использующих его?

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

В. Что произойдет, если я удалю свой шаблон процесса сборки?

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

В. Каковы причины возникновения ошибок в пользовательском процессе сборки?

В. Вот несколько наиболее распространенных причин:

  • TF215097. Возможно, в пользовательском действии отсутствует обязательный атрибут, или вы пытаетесь изменить шаблон в том же проекте кода, который содержит пользовательские действия.

  • Ошибка MSBuild XC1014. Возможно, для параметра "Действие сборки" шаблона не задано значение "Содержимое".

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

Возможно, вы найдете полезную информацию в разделе Диагностирование проблем в сборке.

В. Что такое Windows Workflow Foundation?Как им пользоваться?

О. Windows Workflow Foundation.

В. Как получить данные переменной среды?

О. См. раздел Использование данных среды из пользовательского процесса сборки

В. Где можно найти дополнительные сведения о встроенных действиях?

О. См. раздел Операции Team Foundation Build

Что делать, если встроенные действия не отвечают моим требованиям?

О. См. раздел Разработка собственного действия пользовательского процесса сборки.

В. Где можно получить шаблоны, действия рабочего процесса и скрипты?

О. Community TFS Build Extensions (Расширения сборки сообщества TFS)

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

О. Curated answer: Customize your Team Foundation Build process (Проверенный ответ: настройка процесса сборки Team Foundation)