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


Использование и разработка пользовательских действий процесса сборки

"Hello World" из действия C Sharp

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

Совет

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

  • Создание настраиваемого действия процесса сборки

  • Изменение шаблона процесса сборки

  • Отправка пользовательского процесса сборки

    • Значок TFVC Отправка и включение пользовательского процесса сборки в командный проект TFVC

    • Значок Git Отправка и включение пользовательского процесса сборки в командный проект Git

  • Включение пользовательского процесса сборки

  • Выполнение сборки

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

"Hello World" в сводке сборки

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

Важно!

Перед началом работы получите копию шаблона и поместите ее в проект кода.В противном случае см. описание того, как это сделать.

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

  1. Добавьте новый проект кода на языке C# или Visual Basic в решение, содержащее проект кода шаблона процесса сборки.

    Создать проект для решения BuildProcessSource

    Создание проекта

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

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

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

  3. Добавьте новое действие в проект.

    Новый элемент для проекта исходного кода

    Добавить новый элемент

  4. Реализуйте CodeActivity, например, Hello.cs.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

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

  5. Выполните сборку решения в Visual Studio (нажмите клавиши CTRL+SHIFT+B).

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

Пример пользовательского решения процесса сборки

Изменение шаблона процесса сборки

В решении измените шаблон процесса сборки, перетащив в него действия. После добавления действия в шаблон задайте его свойства (клавиша F4).

Изменение шаблона процесса сборки из решения

После этого сохраните шаблон.

Отправка пользовательского процесса сборки

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

  • Значок TFVC Отправка и включение пользовательского процесса сборки в командный проект TFVC

  • Значок Git Отправка и включение пользовательского процесса сборки в командный проект Git

Отправка пользовательского процесса сборки в командный проект TFVC

В командном проекте TFVC Значок TFVC:

  1. Убедитесь, что выполнена сборка решения (сочетание клавиш CTRL + SHIFT + B).

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

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

    Обозреватель системы управления версиями

  4. Перейдите в папку, в которой находится DLL-файл, и выберите его. Например, C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.

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

  5. Завершите процесс добавления файла.

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

  6. Верните изменения.

    Ожидающие изменения

Отправка пользовательского процесса сборки в командный проект Git

В командном проекте Git Значок Git:

  1. Внимание!

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

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

  2. Убедитесь, что выполнена сборка решения (сочетание клавиш CTRL + SHIFT + B).

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

  4. Откройте командную строку Git.

    Открытие командной строки со страницы "Изменения"

    В. Я не могу открыть командную строку. Что делать? О. См. раздел Включение командной строки Git.

  5. С помощью командной строки Git добавьте DLL-файл. Например:

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. Зафиксируйте изменения.

    Кнопка "Зафиксировать" на странице "Изменения"

  7. Синхронизируйте или отправьте фиксацию.

    Ссылка синхронизации на странице "Изменения"

    Кнопка "Синхронизация" и ссылка "Отправить" на странице "Несинхронизированные фиксации"

Включение пользовательского процесса сборки

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

  1. На странице "Сборки" (сочетание клавиш CTRL + 0, B) щелкните Действия и выберите Управление контроллерами сборки.

  2. В диалоговом окне "Управление контроллерами сборки" выделите контроллер, который будет использоваться для выполнения этого процесса сборки и нажмите Свойства.

    Диалоговое окно "Управление контроллерами построений"

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

    Диалоговое окно "Свойства контроллера построений"

    Снимок экрана VisualStudioEllipsesButton Перейдите к папке, которая является предком папки, в которую был отправлен процесс сборки при выполнении предыдущих действий.

    • Значок TFVC Пример TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Значок Git Пример Git: BuildProcessSource/Source/Bin/Debug

      Диалоговое окно "Обзор" со значениями Git

      Система автоматически преобразует вводимое значение в путь vstfs. Например, vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.

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

  4. В противном случае создайте или измените определение сборки и выберите пользовательский шаблон процесса сборки.

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

Выполнение сборки

Поместите сборку в очередь. Результат должен выглядеть примерно следующим образом:

"Hello World" в сводке сборки

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

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

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

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

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

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

Контекстное меню ссылок

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

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

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

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

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

О. См. раздел Несколько наиболее распространенных причин ошибок.

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

О. Windows Workflow Foundation.

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

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

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

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

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

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