Настройка номеров построений
В этом разделе описывается, как настраивать номера построений при использовании шаблона обновления. Дополнительные сведения о шаблоне обновления см. в разделе Определение построения с помощью шаблона обновления. Эта процедура упрощается с помощью шаблона по умолчанию. Дополнительные сведения см. в разделе Определение построения с помощью шаблона по умолчанию.
Вы можете настраивать Team Foundation Build, создавая собственные задания, которые запускаются во время построения. В этом разделе описываются действия, которые необходимо выполнить для настройки определения построения Team Foundation Build с использованием задачи, формирующей номера построений.
Предварительные требования
Перед созданием задания, настраивающего номера построений, необходимо следующее:
Доступ к файлу TFSBuild.proj определения построения, которое вы хотите настроить.
Файл TFSBuild.proj может быть связан с более чем одним определением построения. Для определения местоположения файла TFSBuild.proj в системе управления версиями выберите определение построения в папке Сборки в Сред. Командный обозреватель, щелкните его правой кнопкой мыши и выберите команду Изменить. Расположение файла TFSBuild.proj в системе управления версиями отображается в области Файл проекта диалогового окна Определение построения. По умолчанию файл TFSBuild.proj находится в $/MyTeamProject/TeamBuildTypes/MyBuildName в Team Foundation (подсистема контроля версий). MyTeamProject — это имя вашего командного проекта и корневой узел всех исходных текстов командного проекта. MyBuildName — это имя, данное вами первому определению построения, связанного с данным файлом TFSBuild.proj. Дополнительные сведения о том, как создавать типы построений Team Foundation Build, см. в разделе Создание базового определения построения.
Важно!
При настройке определенного файла TFSBuild.proj вы настраиваете все определения построений, связанные с ним.
Локальную рабочую область, содержащую файлы и построения командного проекта на вашем локальном компьютере.
Дополнительные сведения см. в разделах Создание рабочей области и получение файлов и Получение исходного кода для командного проекта.
Необходимые разрешения
Чтобы выполнить эту задачу у вас должны быть разрешения Управление построением и Управление рабочими областями установленные в Разрешить. Также для разрешений Возвращать и Извлекать следует задать значение Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.
Написание задания, формирующего номера построений
Чтобы создать задачу, можно либо напрямую реализовать интерфейс ITask, либо сделать класс наследником вспомогательного класса Task. Интерфейс ITask определяется в сборке Microsoft.Build.Framework.dll, а класс Task — в сборке Microsoft.Build.Utilitites.dll.
Чтобы настроить номер построения, созданный Team Foundation Build, необходимо вставить пользовательскую задачу в целевой объект BuildNumberOverrideTarget. Целевому объекту BuildNumberOverrideTarget необходимо выходное свойство с именем BuildNumber. Атрибут Output указывает на то, что свойство является выходным свойством пользовательской задачи. Дополнительную информацию о целях в Team Foundation Build см. в разделе Настраиваемые цели Team Foundation Build.
Написание своего задания
Создайте библиотеку классов Visual C# с именем MyTask, которая содержит ваше задание.
Дополнительные сведения см. в разделе Классы компонентов.
В меню Проект нажмите Добавить ссылку и выберите в диалоговом окне Добавить ссылку Microsoft.Build.Framework и Microsoft.Build.Utilities.
Добавьте в файл class.cs следующий код.
В этом примере создается наследник от вспомогательного класса Task и используются свойства класса DateTime UtcNow и Ticks для формирования номера построения.
using System; using Microsoft.Build.Utilities; using Microsoft.Build.Framework; namespace BuildNumberGenerator { public class BuildNumberGenerator:Task { public override bool Execute() { m_buildNumber = DateTime.UtcNow.Ticks.ToString(); return true; } private string m_buildNumber; [Output] public string BuildNumber { get { return m_buildNumber; } } } }
Выполните построение вашей библиотеки, чтобы создать файл MyTask.dll.
Скопируйте готовую DLL в папку локальной рабочей области, в которой также содержится файл TFSBuild.proj вашего определения построения.
Важно!
Перед тем, как эта структура каталогов появится на клиентском компьютере, местоположение в системе управления версиями файла TFSBuild.proj должно быть сопоставлено с вашей локальной рабочей областью.Дополнительные сведения см. в разделе Получение исходного кода для командного проекта.
Если ваш файл TFSBuild.proj хранился в системе управления версиями в каталоге по умолчанию, локальная копия файла находится в каталоге <корень>:\Local Workspace\TeamBuildTypes\MyBuildName на клиентском компьютере. Local Workspace — это локальная папка, с которой сопоставлен ваш командный проект, MyTeamProject — это имя вашего командного проекта, а MyBuildName — это имя, данное вами первому определению построения, связанному с файлом TFSBuild.proj.
Добавление DLL-файла в систему управления версиями
После создания DLL-файла, содержащего ваше задание, вы должны добавить его в Team Foundation (подсистема контроля версий). Вы можете использовать команды tf add и tf checkin для добавления и возвращения DLL-файла в то же место, где находится файл TFSBuild.proj вашего определения построения. Дополнительные сведения см. в разделах Команда Add и Команда Checkin.
Добавление и возвращение вашей сборки
Нажмите кнопку Пуск, последовательно выберите Все программы, Microsoft Visual Studio 9.0, Набор средств Visual Studio и выберите пункт Командная строка Visual Studio 2008. Откройте локальную рабочую область, которую вы сопоставили с командным проектом, содержащим тип построения, которые вы хотите изменить.
Например, введите в командной строке следующее.
> cd c:\MyTeamProject
где MyTeamProject — имя вашего командного проекта.
Перейдите в каталог, где хранится файл TFSBuild.proj.
Например, введите в командной строке следующее.
c:\MyTeamProject>cd TeamBuildTypes\MyBuildName
Где MyBuildName — имя определения построения.
Чтобы добавить файл в Team Foundation (подсистема контроля версий), введите следующую команду.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll
Чтобы вернуть ваш файл в Team Foundation (подсистема контроля версий), введите следующую команду.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll
Вы также можете использовать Сред. Командный обозреватель для добавления вашего DLL-файла в Team Foundation (подсистема контроля версий). Дополнительные сведения см. в разделе Добавление файлов в систему управления версиями.
Регистрация задания
После создания задания вы должны зарегистрировать его, указав ваше задание в элементе UsingTask файла TFSBuild.proj. Элемент UsingTask сопоставляет задачу со сборкой, содержащей реализацию задачи. Дополнительные сведения см. в разделе Элемент UsingTask (MSBuild).
Регистрация задания путем изменения файла TFSBuild.proj
Запустите Visual Studio.
Извлеките файл TFSBuild.proj, который вы хотите изменить, из Team Foundation (подсистема контроля версий) и откройте его в XML-редакторе Visual Studio.
Добавьте элемент UsingTask в файл TFSBuild.proj непосредственно после инструкции импорта.
<UsingTask TaskName="BuildNumberGenerator.BuildNumberGenerator" AssemblyFile="MyTask.dll"/>
Чтобы вставить задачу в целевой объект BuildNumberOverrideTarget, добавьте следующий XML-код, заключенный в теги <Target></Target>, в конец файла TFSBuild.proj.
</ItemGroup> <Target Name = "BuildNumberOverrideTarget" > <BuildNumberGenerator> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> </BuildNumberGenerator> </Target> </Project>
Нажмите Файл, затем Сохранить для сохранения ваших изменений, и закройте TFSBuild.proj.
Примечание
После внесения этих изменений в файл TFSBuild.proj вы получите предупреждения о нарушении соответствия XML-схеме.Эти предупреждения можно спокойно игнорировать.
Верните TFSBuild.proj обратно в систему управления версиями.
После изменения файла TFSBuild.proj и сохранения изменений в Team Foundation (подсистема контроля версий) запустите определение построения.
Дополнительные сведения см. в разделе Помещение построения в очередь.
Пользовательский номер построения можно просматривать в обозревателе построений. Дополнительные сведения см. в разделе Наблюдение за ходом построения.
См. также
Основные понятия
Определение построения с помощью шаблона обновления
Определение построения с помощью шаблона по умолчанию