The Team Foundation Server includes a build system which allows the modelling of user-defined build processes. In connection with the build process the user often needs to take further steps that are not covered by the included features. The AIT Build Tasks Package provides a range of tasks and scripts which can be used within MSBuild.
The AIT TeamSystemProBuild Package consists of two parts:
The first part consists of AIT target files.
These target files contain standard workflows which can be integrated directly into the build, for example generating the documentation based on Sandcastle.
The second part consists of build tasks which can be embedded directly into the build process. The SharePointUpload Task, for example, allows to upload files into a SharePointDoc library.
During the build process the system compiles the source code files and runs the defined tests. If an error occurs during the build process, the developers do not get immediate feedback on the build error. After embedding the notification script, the system sends out e-mails if an error has occurred during compilation or testing. After the error has been corrected, all parties involved receive an e-mail informing them that the build is up and running again.The e-mail recipient list is not static. The users involved are identified on the basis of the changesets. All users who have checked in something since the last successful build will receive an e-mail.

Compiling the assemblies and providing a package is a key part of the build process. During compilation itself, traceability between the assemblies and the source code files from the Version Control is lost. This script closes the gap between build process and the Version Control configuration.
The script substitues the value of the AssemblyDescription with the name and the build number of the current script. The compiler evaluates the entries in AssemblyInfo.cs and inserts them into the final assembly. This information can be read out at run time using the reflections API. The values can be displayed for example in an About Box. This guarantees traceability between the delivered assemblies and the configuration in the Version Control.

An important release management issue is creating the patch / release notes. These notes must record all changes introduced into the system. The work items connected with the source code serve as a basis for these notes.
The script extracts all work items linked with the current build and inserts them into an XML file. This file can then serve as a basis for different XSL transformations. Patch Notes can for example be converted to HTML to be published on the product website.
The build quality flag is used to control which work items and changesets need to be connected with the build. The required build quality can be defined through a property. During the build process the system looks for the last build that has met the required quality. This build then serves as a reference for creating the release notes.
When working with .NET languages, the documentation can be written directly in the source code of the program as these languages provide a defined syntax for the documentation. The compiler will export this documentation into an XML file.
Sandcastle is a tool to convert XML files into a human readable format. It evaluates the exported XML files and generates an HTML documentation. Sandcastle consists of a range of XSL transformations and command line tools which must be run in a defined order.
Different parameters need to be set before the steps for the documentation generation can be performed. The workflow for the generation is already included in the script. The required parameters for a standard release build are set by default.
Task
| Description |
ClickOnceVersion
| This task refreshes the version information of a Click Once project. |
DumpWorkItems
| This task exports work items into an XML file. This XML file can then be used as a basis for the release notes.
|
ExecSSISPackage
| This task runs SSIS packages in the framework of MSBuild.
|
FindLastGoodBuildTask
| This task sets the LastGoodBuildLabel property within the build process. The label search can be controlled through the Build Quality Flag.
|
LatestBranch
| This task identifies the latest branch of a file or path within the TFS Version Control.
|
NotifyBuildFailed
| This task identifies all persons who have modified the source text and sends them an e-mail.
|
NotifyBuildSucceed
| This task notifies all persons involved in the last build error that the build process is up and running again.
|
PrepareRSMMetrics
| This task extracts the “quality notice” knots from the RSM (Ressource Standard Metrics) and inserts them into a new document. The Warehouse Adapter can read out the result (AIT Report Package)
|
PrepareStyleCopMetrics
| This task extracts quality information from the StyleCop result and writes it into a new document. The Warehouse Adapter can read out the result (AIT Report Package)
|
SharePointUpload
| This task uploads documents into a Microsoft Sharepoint “Document Library”
|
VersionNumbers
| This task generates new and unique version numbers. The generation is based on the $(BuildUri) or the $(VersionSpec) property. This allows to establish traceability between the assemblies and a specific version control configuration.
|
VislocTranslateTask
| This task translates assemblies using Visloc. The Visloc project file is obtained from a Microsoft SharePoint Server. After the translation is complete, the tasks loads the project file back on the SharePoint.
|