Настройка Team Foundation Build для добавочного построения
В этом разделе рассматривается порядок определения инкрементного построения с помощью шаблона обновления. Дополнительные сведения о шаблоне обновления см. в разделе Определение построения с помощью шаблона обновления. Эта процедура упрощается с помощью шаблона по умолчанию. Дополнительные сведения см. в разделе Определение построения с помощью шаблона по умолчанию.
При инкрементном построении повторно используются результаты предыдущего построения, которое хранится системой Team Foundation Build, что позволяет выполнить оптимизированное построение с учетом изменений, внесенных после последнего построения.
После создания определения для инкрементных построений запустите первое построение. При этом создается необходимая рабочая область и извлекаются все исходные файлы на компьютер построения.
Предварительные требования
Перед выполнением этой задачи следует убедиться в наличии следующего:
Доступ к файлу TFSBuild.proj для типа построения, который планируется настроить.
С каждым определением командного построения связан файл TFSBuild.proj, расположенный в папке $/MyTeamProject/TeamBuildTypes/MyBuildName в Team Foundation (подсистема контроля версий). MyTeamProject — имя нужного командного проекта. Это корневой узел для всех источников из командного проекта. MyBuildName — имя, присвоенное вами определению построения. Дополнительные сведения о том, как создавать типы построений Team Foundation Build, см. в разделе Создание базового определения построения.
Локальная рабочая область, содержащая файлы командного проекта и файлы построения на локальном компьютере.
Дополнительные сведения см. в разделах Создание рабочей области и получение файлов и Получение исходного кода для командного проекта.
Совет
Можно также сделать запускаемое построение инкрементным при постановке в очередь построения, включив в параметр Аргументы MSBuild строку /p:IncrementalBuild=true.Дополнительные сведения см. в разделе Помещение построения в очередь.
Необходимые разрешения
Для выполнения этой задачи нужно иметь разрешения Администрирование построения и Администрирование рабочих областей со значением Разрешить. Также необходимы разрешения Возврат и Извлечение со значением Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.
Получение локальной копии файла TFSBuild.proj
Перед изменением файла TFSBuild.proj с определением построения необходимо получить локальную копию.
Получение локальной копии файла TFSBuild.proj
В меню Вид выберите команду Другие окна, а затем Обозреватель управления исходным кодом.
В обозревателе управления исходным кодом щелкните Рабочие области в панели управления и выберите рабочую область из списка.
Откройте папку командного проекта, содержащую нужный тип построения, и разверните папку TeamBuildTypes.
Щелкните правой кнопкой мыши файл TFSBuild.proj и выберите команду Получить последнюю версию, чтобы скопировать последнюю версию файла.
Дополнительные сведения см. в разделе Получение исходного кода для командного проекта.
Задание свойств в файле TFSBuild.proj
Чтобы указать инкрементное построение, необходимо задать свойство IncrementalBuild в файле TFSBuild.proj.
Задание свойств в файле TFSBuild.proj
IncrementalBuild — удобное свойство, которое задает для SkipClean значение true, для SkipInitializeWorkspace — true, а для ForceGet — false.
Выполняя полное построение, Team Foundation Build очищает файлы из папки промежуточного построения и папки источников в цели Clean. При инкрементном построении эта цель должна быть пропущена, так как упомянутые файлы должны храниться невредимыми для следующего построения. Для этого параметру SkipClean задается значение true.
В процессе полного построения Team Foundation Build удаляет старую и повторно создает новую рабочую область для очистки и синхронизации исходных файлов. В инкрементном построении эту цель также необходимо пропустить. Для этого параметру SkipInitializeWorkspace задается значение true.
В задаче Get Team Foundation Build по умолчанию извлекает новые исходные файлы и перезаписывает существующие файлы в рабочей области построения. Для извлечения только измененных файлов параметру ForceGet задается значение false.
Чтобы задать для свойства IncrementalBuild значение true, добавьте определение PropertyGroup в конец файла TFSBuild.proj перед закрывающим тегом </project>.
<PropertyGroup> <IncrementalBuild>true</IncrementalBuild> </PropertyGroup>