Introducing TFS Deployer
TFS Deployer is installed as an agent in your test and production environments and supports the execution of PowerShell scripts when an event happens in TFS. In particular it listens to build quality change notifications which occur when you change the quality
of a build under the Team Builds node of Team Explorer. These build qualities can also be changed through build scripts, as blogged by Aaron Halberg here:
The way it works is that when TFS Deployer starts up, the service subscribes to the build quality change event notification (1). Then the release manager, using Team Explorer updates the build quality indicator in the build store via Team Explorer (2), the
build quality change event is fired (3), the TFS event service then looks up who is subscribed to the event (4) and then TFS Event Service notifies the subscribers of the Build Quality Change Event - in this case TFS Deployer is notified (5). You can have
one or more TFS Deployer installations listening across multiple target machines. When TFS Deployer is notified it doesn’t initially know whether it needs to do anything. To determine this it grabs a deployment mapping file from a well known location in the
version control store (6).
The deployment mapping file lists out each of the servers and what that server should do in the event that a build is transitioned from quality state to another. What happens is encapsulated in a PowerShell script file (*.ps1) and once that script file is identified
TFS Deployer will instantiate a PowerShell host environment and execute the script (7).