2009-03-04 28 views
8

我一直在使用谷歌搜索,並找不到任何可靠的例子如何完成,或者如果它甚至可以完成。我認爲它可以。任何人都可以將我指向正確的方向嗎?是否可以使用TFS SDK創建,排隊和跟蹤構建?

到目前爲止,我一直在尋找關於msdn的TFS命名空間文檔。我的目標是能夠從Intranet Web應用程序完全自動化並跟蹤我們在TFS中的構建。

回答

12

理查德向我指出了正確的方向,所以我會用我發現的東西來回答我自己的問題。

是的,您可以使用TFS SDK創建,排隊和跟蹤構建。您想要的接口/類位於Microsoft.TeamFoundation.Build.Client命名空間中。 IBuildServer,IBuildDefinition和IBuildDetail特別有用。

TFS 2010更新:下面是一個使用TFS 2010 SDK的例子程序,發現here

using System; 
using System.Collections.Generic; 
using Microsoft.TeamFoundation.Build.Client; 
using Microsoft.TeamFoundation.Build.Workflow; 
using Microsoft.TeamFoundation.Client; 

namespace ManageBuildTemplates 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      TfsTeamProjectCollection collection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://jpricket-test:8080/tfs/collection0")); 
      IBuildServer buildServer = collection.GetService<IBuildServer>(); 

      IBuildDefinition definition = buildServer.GetBuildDefinition("UnitTests", "Definition1"); 

      IBuildRequest request = definition.CreateBuildRequest(); 
      request.ProcessParameters = UpdateVerbosity(request.ProcessParameters, BuildVerbosity.Diagnostic); 

      buildServer.QueueBuild(request); 
     } 

     private static string UpdateVerbosity(string processParameters, BuildVerbosity buildVerbosity) 
     { 
      IDictionary<String, Object> paramValues = WorkflowHelpers.DeserializeProcessParameters(processParameters); 
      paramValues[ProcessParameterMetadata.StandardParameterNames.Verbosity] = buildVerbosity; 
      return WorkflowHelpers.SerializeProcessParameters(paramValues); 
     } 
    } 
} 
3

查看tfsbuild.exe(位於VS安裝的.../Common9/IDE文件夾中)。

此引用組件Microsoft.TeamFoundation.Build.ClientMicrosoft.TeamFoundation.Build.Common看起來有用,...,且含有不與其他TFS cient assembliies文檔的命名空間,但在MSDN這裏http://msdn.microsoft.com/en-us/library/cc339575.aspx

+0

謝謝,這導致我的解決方案。 – JimDaniel 2009-03-04 21:02:13