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


Настраиваемые цели Team Foundation Build

Обновлен: Ноябрь 2007

Цели MSBuild определяют, как выполняется построение проекта MSBuild. Файл Microsoft.TeamFoundation.Build.targets определяет иерархию целей и набор предопределенных заданий MSBuild и целей для Team Foundation Build, используемых для всех типов Team Foundation Build. Определения построений используют файл TfsBuild.proj. Файл проекта может быть связан либо с одним определением построения, либо с несколькими определениями. TfsBuild.proj импортирует файл Microsoft.TeamFoundation.Build.targets и предоставляет значения различных свойств и групп элементов. Вы можете настроить файл TfsBuild.proj, перекрыв некоторые цели, являющиеся точками расширения иерархии. Файл целей находится в каталоге <корневой каталог>:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild на агенте построения.

Aa337604.alert_caution(ru-ru,VS.90).gifВажное примечание.

Не изменяйте файл Microsoft.TeamFoundation.Build.targets.

Дополнительную информацию о целях в MSBuild см. в разделе Цели MSBuild.

Цели могут настраиваться с помощью заданий

Задания содержатся в целях. В задачах предоставляется код, выполняющийся во время процесса построения. В следующей таблице приведены все цели Team Foundation Build, определенные для расширяемости. Вставьте свои задания в одну из этих целей в зависимости от того, на каком этапе построения требуется запускать задания.

Aa337604.alert_note(ru-ru,VS.90).gifПримечание.

Другие цели переопределять не рекомендуется.

Имя цели

Описание

BeforeEndToEndIteration

Вставьте свое задание в эту цель, чтобы оно запускалось в самом начале процесса построения.

AfterEndToEndIteration

Вставьте свое задание в эту цель, чтобы оно запускалось в конце процесса построения.

BeforeInitializeWorkspace

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

AfterInitializeWorkspace

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

BuildNumberOverrideTarget

Вставьте свое задание в эту цель, чтобы настроить номер построения или свойства каталога размещения. Написанное вами задание должно создавать выходное свойство с именем BuildNumber.

BeforeClean

Вызывается перед попыткой очистки. Вставьте свое задание в эту цель, чтобы оно запускалось перед очисткой.

AfterClean

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

BeforeGet

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

AfterGet

Вызывается после извлечения исходных текстов. Вставьте свое задание в эту цель, чтобы оно запустилось после извлечения исходных текстов.

BeforeLabel

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

AfterLabel

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

BeforeCompile

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

BeforeCompileConfiguration

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

BeforeCompileSolution

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

AfterCompileSolution

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

AfterCompileConfiguration

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

AfterCompile

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

BeforeGetChangesetsAndUpdateWorkItems

Вставьте свое задание в эту цель, чтобы оно запустилось перед сопоставлением наборов изменений и обновлением рабочих элементов.

AfterGetChangesetsAndUpdateWorkItems

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

BeforeTest

Вызывается перед запуском тестов. Вставьте свое задание в эту цель, чтобы оно запустилось перед целью Test.

BeforeTestConfiguration

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

AfterTestConfiguration

Вставьте свое задание в эту цель, чтобы оно запустилось после тестирования отдельной конфигурации.

AfterTest

Вызывается после завершения тестирования. Вставьте свое задание в эту цель, чтобы оно запустилось после цели Test.

BeforeDropBuild

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

AfterDropBuild

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

BeforeCreateWorkItem

Вставьте свое задание в эту цель, чтобы оно запустилось перед созданием рабочего элемента.

AfterCreateWorkItem

Вставьте свое задание в эту цель, чтобы оно запустилось после создания рабочего элемента.

BeforeOnBuildBreak

Вызывается перед созданием рабочего элемента в результате прерывания построения. Вставьте свое задание в эту цель, чтобы оно запустилось перед целью BuildBreak.

AfterOnBuildBreak

Вызывается после создания рабочего элемента в результате прерывания построения. Вставьте свое задание в эту цель, чтобы оно запустилось после цели BuildBreak.

GenerateDocumentation

Это пустая цель. Вставьте свое задание в эту цель для автоматической генерации документации во время процесса построения.

Переопределение целей для запуска собственных заданий

Написанный код задания должен соответствовать цели, и готовые двоичные файлы должны быть доступны на компьютере построения либо путем задания маршрута в системе управления версиями в файле TfsBuild.proj, либо сделав их доступными на самом компьютере построения. Необходимо также зарегистрировать собственное задание в файле TfsBuild.proj, объявив его с помощью элементаUsingTaskMSBuild. Дополнительные сведения см. в разделе Элемент UsingTask (MSBuild). Наконец, разместите DLL, содержащую собственное задание, на компьютере построения.

Aa337604.alert_caution(ru-ru,VS.90).gifВажное примечание.

Изменение повлияет на все определения построений, связанные с измененным файлом TfsBuild.proj.

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

Порядок выполнения целей

Порядок выполнения целей зависит от значения свойства CleanCompilationOutputOnly. Если свойство CleanCompilationOutputOnly равно true, цели очистки (BeforeClean, CoreClean и AfterClean) выполняются после целей загрузки и пометки (BeforeGet, CoreGet, AfterGet, BeforeLabel, CoreLabel и AfterLabel). Если свойство CleanCompilationOutputOnly равно false, цели очистки выполняются перед целями загрузки и пометки. Если свойство CleanCompilationOutputOnly равно true, во время выполнения цели CoreClean из каталога исходных текстов удаляются только промежуточные сборки. Если для этого свойства установлено значение false, все исходные каталоги удаляются во время выполнения цели CoreClean.

В следующей таблице приведен упорядоченный список выполняемых целей в зависимости от значения свойства CleanCompilationOutputOnly, равного true или false. Указаны цели, которые можно переопределить.

CleanCompilationOutputOnly = true

CleanCompilationOutputOnly = false

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (можно переопределить)

  3. BuildNumberOverrideTarget (можно переопределить)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (можно переопределить)

  6. CoreInitializeWorkspace

  7. AfterinitializeWorkspace (можно переопределить)

  8. InitializeBuild

  9. BeforeGet (можно переопределить)

  10. CoreGet

  11. AfterGet (можно переопределить)

  12. BeforeLabel (можно переопределить)

  13. CoreLabel

  14. AfterLabel (можно переопределить)

  15. BeforeClean (можно переопределить)

  16. CoreCleanCompilationOutput

  17. AfterClean (можно переопределить)

  18. BeforeCompile (можно переопределить)

  19. CoreCompile (для каждой комбинации платформы и конфигурации)

  20. BeforeCompileConfiguration (можно переопределить)

  21. CoreCompileConfiguration (для каждого решения, участвующего в построении)

  22. BeforeCompileSolution (можно переопределить)

  23. CoreCompileSolution

  24. AfterCompileSolution (можно переопределить)

  25. AfterCompileConfiguration (можно переопределить)

  26. AfterCompile (можно переопределить)

  27. BeforeGetChangesetsAndUpdateWorkItems (можно переопределить)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (можно переопределить)

  30. BeforeTest (можно переопределить)

  31. CoreTest (для каждой комбинации платформы и конфигурации)

  32. BeforeTestConfiguration (можно переопределить)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (можно переопределить)

  35. AfterTest (можно переопределить)

  36. GenerateDocumentation (можно переопределить)

  37. PackageBinaries (можно переопределить)

  38. BeforeDropBuild (можно переопределить)

  39. CoreDropBuild

  40. AfterDropBuild (можно переопределить)

  41. AfterEndToEndIteration (можно переопределить)

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (можно переопределить)

  3. BuildNumberOverrideTarget (можно переопределить)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (можно переопределить)

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace (можно переопределить)

  8. BeforeClean (можно переопределить)

  9. CoreClean

  10. AfterClean (можно переопределить)

  11. InitializeBuild

  12. BeforeGet (можно переопределить)

  13. CoreGet

  14. AfterGet (можно переопределить)

  15. BeforeLabel (можно переопределить)

  16. CoreLabel

  17. AfterLabel (можно переопределить)

  18. BeforeCompile (можно переопределить)

  19. CoreCompile (для каждой комбинации платформы и конфигурации)

  20. BeforeCompileConfiguration (можно переопределить)

  21. CoreCompileConfiguration (для каждого решения, участвующего в построении)

  22. BeforeCompileSolution (можно переопределить)

  23. CoreCompileSolution

  24. AfterCompileSolution (можно переопределить)

  25. AfterCompileConfiguration (можно переопределить)

  26. AfterCompile (можно переопределить)

  27. BeforeGetChangesetsAndUpdateWorkItems (можно переопределить)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (можно переопределить)

  30. BeforeTest (можно переопределить)

  31. CoreTest (для каждой комбинации платформы и конфигурации)

  32. BeforeTestConfiguration (можно переопределить)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (можно переопределить)

  35. AfterTest (можно переопределить)

  36. GenerateDocumentation (можно переопределить)

  37. PackageBinaries (можно переопределить)

  38. BeforeDropBuild (можно переопределить)

  39. CoreDropBuild

  40. AfterDropBuild (можно переопределить)

  41. AfterEndToEndIteration (можно переопределить)

Ниже приведен список целей, выполняемых при возникновении ошибки во время выполнения цели CoreCompile. Указаны цели, которые можно переопределить.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak (можно переопределить)

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild (можно переопределить)

  5. CoreDropBuild

  6. AfterDropBuild (можно переопределить)

  7. BeforeCreateWorkItem (можно переопределить)

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem (можно переопределить)

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak (можно переопределить)

См. также

Задачи

Практическое руководство. Написание задачи

Основные понятия

Описание файлов конфигурации Team Foundation Build

Настраиваемые свойства построения Team Foundation

Задачи Team Foundation Build