Welcome to MSDN Blogs Sign in | Join | Help

simple command-line example: listing the team projects on a server

This is a very simple example showing a simple use of the ICommonStructureService.

 

Running against my current test server shows some of the test projects I made yesterday while testing a bug fix: 

 

% ListTeamProjects.exe jmanning-test

empty-folder                   vstfs:///Classification/TeamProject/313a9cf6-a2b9-4f03-9fd4-73fbc22aaf80 [WellFormed]

no-folder                      vstfs:///Classification/TeamProject/f76c2d64-6029-4292-8b99-91ba8fbb5ba9 [Deleting]

branch-of                      vstfs:///Classification/TeamProject/b29bb5a2-f921-4f10-a281-b845192427c3 [WellFormed]

 

using System;

using Microsoft.TeamFoundation.Client;

using Microsoft.TeamFoundation.Server;

 

namespace ListTeamProjects

{

    class Program

    {

        static void Main(string[] args)

        {

            if (args.Length == 0)

            {

                Console.Error.Write("Usage: ListTeamProjects <servername>");

                Environment.Exit(1);

            }

 

            TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer(args[0]);

            ICommonStructureService css = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));

            foreach (ProjectInfo projectInfo in css.ListAllProjects())

            {

                Console.WriteLine("{0,-30} {1} [{2}]",

                                  projectInfo.Name,

                                  projectInfo.Uri,

                                  projectInfo.Status);

            }

        }

    }

}

 

[Edit 2005-10-20] Thanks to Tom Fieldhouse at Intel for asking - the references needed for this to build include System, Microsoft.TeamFoundation.dll, Microsoft.TeamFoundation.Common.dll, and Microsoft.TeamFoundation.Client.dll

  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="Microsoft.TeamFoundation">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.TeamFoundation.Common">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.TeamFoundation.Client">
      <Private>False</Private>
    </Reference>
  </ItemGroup>

 

The natural question is "why don't your assembly names match the namespaces (or vice versa)?" - unfortunately, there's various non-interesting reasons for that, and we're hoping to make it better in V2.

 

[Edit 2005-10-21] While the above code is using ListAllProjects to get all the team projects on the server (even those not in the WellFormed state), CSS also has a different method ListProjects() that returns the exact same list, except it's filtered to only show the WellFormed projects.  This is very useful when you don't want to have to worry about your call potentially catching a team project while it's in the middle of being created/deleted/whatever, or projects that were only partially created :)

Published Friday, October 14, 2005 12:01 PM by jmanning

Attachment(s): ListTeamProjects.zip

Comments

# GetService() method of the Team Foundation Server object

Wednesday, February 08, 2006 12:49 AM by Mickey Gousset
This post builds off my Simple Team Foundation Server Object Model Application post.  Also, I am currently...

# Links to code samples

Saturday, August 12, 2006 10:52 AM by Buck Hodges
I recently had to put together a list of links to code samples.&amp;nbsp; This isn't even close to comprehensive,...

# Links to code samples

Saturday, August 12, 2006 10:54 AM by Buck Hodges
I recently had to put together a list of links to code samples.&amp;nbsp; This isn't even close to comprehensive,...

# Los servicios del modelo de objetos de Team Foundation Server

Thursday, September 07, 2006 6:14 AM by ASP.NET Espanol Blogs
La arquitectura de Team Foundation esta orientada a servicios, no en el sentido que utiliza servicios

# Making sure your team project's groups only contain groups

Monday, February 26, 2007 9:49 AM by James Manning's blog

I know, the title sounds a little odd. :) Got a question in the forums : i need to make sure that all

Anonymous comments are disabled
 
Page view tracker