Использование и разработка пользовательских действий процесса сборки
После создания пользовательского шаблона процесса сборки можно реализовать собственную бизнес-логику с помощью инструкций рабочего процесса Windows и встроенных действий Team Foundation Build (TFBuild). Если этих средств недостаточно, можно использовать действия сторонних разработчиков или при необходимости реализовать собственный код платформы .NET Framework в CodeActivity. Совет Если функции настраиваемого процесса сборки можно закодировать в пакетном файле Windows или скрипте PowerShell, можно загрузить скрипт и запустить его в рамках процесса сборки.Этот подход может быть быстрее и проще, чем создание настраиваемого процесса сборки.См. раздел Выполнение скрипта в процессе сборки.
|
Создание настраиваемого действия процесса сборки
Важно!
Перед началом работы получите копию шаблона и поместите ее в проект кода.В противном случае см. описание того, как это сделать.
Действие процесса сборки следует разрабатывать в том же решении, что и пользовательские шаблоны процесса сборки.Если работать таким образом, то при необходимости использовать одно из пользовательских действий в шаблоне процесса действие будет доступно на панели элементов конструктора рабочих процессов.Однако исходный код пользовательских действий необходимо хранить в отдельном проекте кода, а не в том, в котором содержатся пользовательские шаблоны процесса сборки.
Добавьте новый проект кода на языке C# или Visual Basic в решение, содержащее проект кода шаблона процесса сборки.
Добавьте следующие ссылки в новый проект кода.
Как добавить эти ссылки в проект кода?
Сохраните проект кода.
Добавьте новое действие в проект.
Реализуйте 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 не требуется, поэтому при желании его можно удалить.
Выполните сборку решения в Visual Studio (нажмите клавиши CTRL+SHIFT+B).
По окончании решение должно выглядеть примерно следующим образом:
Изменение шаблона процесса сборки
В решении измените шаблон процесса сборки, перетащив в него действия. После добавления действия в шаблон задайте его свойства (клавиша F4).
После этого сохраните шаблон.
Отправка пользовательского процесса сборки
Перед определением сборки, которая использует настраиваемый шаблон процесса сборки и настраиваемое действие, необходимо загрузить и включить их.
Отправка и включение пользовательского процесса сборки в командный проект TFVC
Отправка и включение пользовательского процесса сборки в командный проект Git
Отправка пользовательского процесса сборки в командный проект TFVC
В командном проекте TFVC :
Убедитесь, что выполнена сборка решения (сочетание клавиш CTRL + SHIFT + B).
Подключитесь к командному проекту (сочетание клавиш CTRL + 0, C), в котором планируется хранить источник процесса сборки.
В обозревателе управления исходным кодом добавьте элементы в папку, содержащую ваш проект кода действия.
Перейдите в папку, в которой находится DLL-файл, и выберите его. Например, C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.
Завершите процесс добавления файла.
Верните изменения.
Отправка пользовательского процесса сборки в командный проект Git
В командном проекте Git :
Внимание!
Хранение двоичных файлов (особенно множества версий больших файлов) может привести к значительному увеличению размера репозитория Git. Двоичные файлы пользовательского процесса сборки рекомендуется хранить в репозитории отдельно от кода, из которого выполняется сборка приложения. Можно либо создать отдельный командный проект для этой цели, либо создать дополнительный репозиторий в существующем командном проекте.
Двоичные файлы следует хранить во вложенной папке в репозитории Git. При попытке использования двоичные файлы в корневой папке может отобразиться сообщение об ошибке GIT ветвь не найдена.
Убедитесь, что выполнена сборка решения (сочетание клавиш CTRL + SHIFT + B).
Подключитесь к командному проекту (сочетание клавиш CTRL + 0, C), в котором планируется хранить источник процесса сборки.
Откройте командную строку Git.
В. Я не могу открыть командную строку. Что делать? О. См. раздел Включение командной строки Git.
С помощью командной строки Git добавьте DLL-файл. Например:
cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug git add Source.dll -f
Зафиксируйте изменения.
Синхронизируйте или отправьте фиксацию.
Включение пользовательского процесса сборки
Перед выполнением пользовательского процесса сборки необходимо указать контроллер сборки для двоичных файлов, отправляемых в TFS, и выбрать шаблон процесса сборки в определении сборки.
На странице "Сборки" (сочетание клавиш CTRL + 0, B) щелкните Действия и выберите Управление контроллерами сборки.
В диалоговом окне "Управление контроллерами сборки" выделите контроллер, который будет использоваться для выполнения этого процесса сборки и нажмите Свойства.
Укажите путь к пользовательским сборкам в системе управления версиями.
Перейдите к папке, которая является предком папки, в которую был отправлен процесс сборки при выполнении предыдущих действий.
Пример TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Пример Git: BuildProcessSource/Source/Bin/Debug
Система автоматически преобразует вводимое значение в путь vstfs. Например, vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.
В противном случае создайте или измените определение сборки и выберите пользовательский шаблон процесса сборки.
Выполнение сборки
Поместите сборку в очередь. Результат должен выглядеть примерно следующим образом:
Вопросы и ответы
В. Система заблокировала мои действия, поскольку у меня нет разрешения.Как его получить?
О. См. раздел Справочник по разрешениям 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)