2010-06-07 7 views
6

Il nostro script di compilazione batch esistente contiene un URL per ottenere l'ultima generazione di prodotto (di un'altra definizione di build).Come ottenere l'ultimo artefatto di build dal rilascio di build TFS?

Come si può accedere alla cartella di trascinamento build più recente di TFS Team Build?

sto cercando qualcosa per accedere alle più recenti \ buildserver \ builddrop \ Project-2010MMDD.N \

risposta

4

Utilizzando l'API, è possibile ottenere la posizione caduta dalla build. Il codice seguente ottiene la build più recente per un determinato progetto e restituisce il dropfolder.

public string DropFolder(TeamFoundationServer tfs, string teamProject, string buildName) 
{ 
    IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer)); 

    IBuildDetailSpec buildDetailSpec = buildServer.CreateBuildDetailSpec(teamProject, buildName); 

    buildDetailSpec.MaxBuildsPerDefinition = 1; 
    buildDetailSpec.QueryOrder = BuildQueryOrder.FinishTimeDescending; 
    buildDetailSpec.Status = BuildStatus.Failed | BuildStatus.PartiallySucceeded | BuildStatus.Stopped | BuildStatus.Succeeded; 

    IBuildQueryResult results = buildServer.QueryBuilds(buildDetailSpec); 

    if (results.Failures.Length != 0) 
    { 
     throw new ApplicationException("this needs to go away and be handled more nicely"); 
    } 

    if (results.Builds.Length == 1) 
    { 
     results.Builds[0].DropLocation; 
    } 
    else 
    { 
     return null; 
    } 
} 
+1

Inoltre, se scrivere una piccola app di utilità per farlo non è nelle carte, la stessa API è esposta a PowerShell. – Robaticus