How to Work With TFS - TFS Build Agent, Build Definition, TFS Build Custom Task

In this example, I want to execute my own a custom task which will write some text into the event viewer as "My Custom Task is executed" & this custom task has to be executed after the TFS build succeeds
To proceed on we have to handle the below step:
  1. Create a class library to handle "Custom Task"
  2. Create "TFS Build Agent"
  3. Create "New Build definition"
  4. Run TFS build
Step 1: Custom Task
Writes text into event viewer after TFS build succeeds. This is to be implemented in Class Library.
  1. First, create a Class Library & name it "MySample"
  2. Add a class called MyTask and add a flowing reference to the library
    • Microsoft.Build.Framework;
    • Microsoft.Build.Utilities;
    • System.Diagnostics;
  3. Now inherit the class "TASK" as shown below
  1. public class MyTask : Task  
  2. {  
  3.     public override bool Execute()  
  4.     {  
  5.         EventLog log = new EventLog();  
  6.         log.Source = "Application";  
  7.         log.WriteEntry("Step 2 Executed");  
  8.         return true;  
  9.     }  
Note: In the above code, we are overriding the execute method & implementing our own implementation.
  1. Now compile it and as usual, it will generate MySample.dll
Step 2: Create a TFS Build Agent:
Before working on a TFS build definition we need to have a TFS build agent.
Let's follow the below steps to create a build agent
  1. Connect to TFS Server from Team Explorer
  2. Right-click on the Build folder & select "Manage Build Agent"
  3. Now click on the "New" button in the build agent window & provide the below necessary information
    TFS agent
Display Name: Name of your choice
Computer Name: TFS Server name
Communications port: TFS server port
Working directory: TFS build will create build files at this location. So provide the path of the TFS server's physical path
Agent Status: Enabled
  1. Now click the "Ok" button
Step 3:Create TFS Build Definition:
  1. Connect to TFS Server from Team Explorer
  2. Right-click on the Build folder & select "New Build Definition"
    TFS in .NET
  3. A new window will open up as shown below
    .NET TFS
General - Build definition name: Enter build definition name
  1. Select workspace
    workspace in TFS
Status: Active
Source Control Folder: TFS server path project
  1. Select "Project file", click the create button
    TFS project title
  2. MS Build Project file creation wizard will open up. In this select the item as shown below
    project title in TFS
  3. Click next and leave other options as is & click the FINISH button.
  4. Leave retention policy section as it is
    retention policy in TFS
  5. Now select Build Defaults
Build Agent: Should select build agent name that we have created in Step 2 Create TFS Build Agent
Builds will be staged: should provide a shared path which TFS server has access
  1. Trigger section allows configuring TFS to build to run at those intervals
  2. Finally, click the ok button
Step 4: Run TFS Build
  1. Connect to TFS Server from Team Explorer
  2. Expand Build folder & right build definition name which you want to run. In our case right-click "MyTestBuildDefinition" & select Queue new build definition
    Expand Build folder in TFS
  3. Select as shown below
    • Build Definition name
    • Build Agent name
    • Drop folder
    • Priority
Now by this time, build definition would be stated up & know the processing right click on build definition name & select open
team foundation server
Finally, you should be seeing build succeeded if everything goes fine & now go the path (entered while creating build definition & build agent) to see the build files.
Happy coding, Hope this helps!