Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

How to Work with TFS

0.00/5 (No votes)
30 Oct 2011 1  
TFS Build agent, Build definition, TFS Build Custom Task

Introduction

In this article, we will see how to create TFS build Custom task.

In this example, I want to execute my own custom task which will write some text into event viewer as “My Custom Task is executed” & this custom task has to be executed after TFS build succeeds.

To proceed on, we have to handle the below step:

  1. Create 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 Class Library & name it as “MySample
  2. Add a class called MyTask and add the following references to the library:
    1. Microsoft.Build.Framework
    2. Microsoft.Build.Utilities
    3. System.Diagnostics
  3. Now inherit the class “TASK” as shown below:
     public class MyTask : Task
        {
            public override bool Execute()
            {
                EventLog log = new EventLog();
                log.Source = “Application”;
                log.WriteEntry(”Step 2 Executed”);
                return true;
            }
     }

    Note: In the above code, we are overriding execute method & implementing our own implementation.

  4. Now compile it and as usual, it will generate MySample.dll.

Step 2 – Create TFS Build Agent

Before working on TFS build definition, we need to have 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 Build folder & select “Manage Build Agent”.

    1.jpg

  3. Now click on “New” button in build agent window & provide below necessary information:

    2.jpg

    • Display 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 path of TFS server physical path
    • Agent Status: Enabled
  4. Now Click “Ok” button

Step 3 – Create TFS Build Definition

  1. Connect to TFS Server from Team Explorer
  2. Right click on Build folder & select “New Build Definition”

    3.jpg

  3. A new window will open up as shown below:

    4.jpg

    • General – Build definition name: Enter build definition name
  4. Select workspace

    5_small.jpg

    • Status: Active
    • Source Control Folder: TFS server path project
  5. Select “Project file”, click create button:

    6_small.jpg

  6. MSBuild Project file creation wizard will open up. In this, select the item as shown below:

    7.jpg

  7. Click next and leave other options as is & click FINISH button.
  8. Leave retention policy section as it is.

    8_small.jpg

  9. Now select Build Defaults
    1. Build Agent: Should select build agent name that we have created in Step 2 – Create TFS Build Agent
    2. Builds will be staged: should provide shared path which TFS server has access
  10. Trigger section allows to configure TFS build to run at those intervals
  11. Finally click 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

    11.jpg

  3. Select as shown below:
    1. Build Definition name
    2. Build Agent name
    3. Drop folder
    4. Priority

    12.jpg

  4. Now by this time, build definition would be started up & know the processing right click on build definition name & select open.

    13.jpg

  5. Finally you should be seeing build succeeded if everything goes fine & now go to the path (entered while creating build definition & build agent) to see the build files.

Happy coding… hope this helps!

History

  • 29th October, 2011: Initial version

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here