Team Foundation Build is a build orchestrator, part of Microsoft Application Lifecycle Management suite. Tightly integrated with other Visual Studio Team System components such as version control, work-item tracking, testing and reporting.
Team Build is built on top of the Microsoft Build Engine (MSBuild). Team Build consists of the Team Build Service layered on top of the MSBuild build system. MSBuild is responsible for the build itself, while the Team Build Service is responsible for communicating with the TFS application-tier.
Features highlights:
- Facilitates out of box build process for most the of .NET applications
-
5 steps out of box end-end build process
- Retrieve the code from Team Foundation Source Control
- Compile, Run tests, static code analysis against compiled code
- Release the builds onto a file server
- Create/update work items appropriately
- Publish the build reports
- Supports executing build on multiple build machines without any script changes
- Efficient retention policy to delete old builds
- Locking mechanism to keep the build forever
- Provides the capability for public and private or desktop builds
- Provides APIs for extension
- Ability to build projects/solutions in parallel fashion
- Beyond build process, other parts of software lifecycle like packaging, deploy could be integrated with Team Build
Refer the high level Architecture here
Team Foundation Build logical flow:


Build types, build creation, execution and viewing results are largely wizard driven and straight forward – let’s move on to the actual Build Process flow

List of customizable Team Build Targets – If you wish to extend, tailor Team Foundation Build according to your project needs
For full information on this specific topic – have a look at this
| BeforeEndToEndIteration | BeforeCompileConfiguration |
| AfterEndToEndIteration | BeforeCompileSolution |
| BeforeInitializeWorkspace | AfterCompileSolution |
| AfterInitializeWorkspace | AfterCompileConfiguration |
| BuildNumberOverrideTarget | AfterCompile |
| BeforeClean | BeforeGetChangesetsAndUpdateWorkItems |
| AfterClean | AfterGetChangesetsAndUpdateWorkItems |
| BeforeGet | BeforeTest |
| AfterGet | BeforeTestConfiguration |
| BeforeLabel | AfterTestConfiguration |
| AfterLabel | AfterTest |
| BeforeCompile | BeforeDropBuild |
| AfterDropBuild | BeforeOnBuildBreak |
| BeforeCreateWorkItem | AfterOnBuildBreak |
| AfterCreateWorkItem | GenerateDocumentation |
List of customizable Team Build Properties
| CustomPropertiesForClean | LabelName |
| CustomPropertiesForBuild | OutDir |
| SkipClean | UpdateAssociatedWorkItemsOnBuildBreak |
| IncrementalGet | StopOnFirstFailure |
| IncrementalBuild | SkipGet |
| CleanCompilationOutputOnly | SkipLabel |
| SkipGetChangesetsUpdateWorkItems | SkipInitializeWorkspace |
| SolutionRoot | SkipInvalidConfigurations |
| BinariesRoot | SkipPostBuild |
| LabelComment | SkipDropBuild |
| CustomizablePublishDir | SkipWorkItemCreation |
| CustomizableOutDir |