Tôi đang cố gắng xây dựng một công trình cụ thể từ TFS nhưng khó thực hiện được. Tôi có một ứng dụng MVC sẽ kích hoạt xây dựng như thế này:Cách nhận một bản dựng cụ thể với TFS API
IBuildServer buildServer = (IBuildServer)Server.GetService(typeof(IBuildServer));
IBuildDefinition def = buildServer.GetBuildDefinition(TeamProject, BuildDefinition);
var queuedBuild = buildServer.QueueBuild(def);
QueueBuild trả IQueuedBuild và tôi đã hy vọng để làm một cái gì đó như thế này:
return queuedBuild.Build.BuildNumber
Vì vậy, rằng tôi sẽ có một số giá trị duy nhất mà tôi có thể sử dụng để truy vấn máy chủ xây dựng để có được bản dựng chính xác trở lại. Thật không may Xây dựng có thể hoặc có thể không được null khi thực hiện thoát khỏi phương pháp này vì vậy đó là một không đi.
Sau khi xây dựng được xếp hàng sau đó tôi thăm dò ý kiến phương pháp này
public string GetBuildStatus(string TeamProject, string BuildDefinition, string BuildNumber)
{
string status = string.Empty;
IBuildDetailSpec buildDetailSpec = buildServer.CreateBuildDetailSpec(TeamProject, BuildDefinition);
buildDetailSpec.MaxBuildsPerDefinition = 1;
buildDetailSpec.Status = BuildStatus.InProgress | BuildStatus.None;
buildDetailSpec.QueryOrder = BuildQueryOrder.FinishTimeDescending;
IBuildQueryResult queryResult = buildServer.QueryBuilds(buildDetailSpec);
if (queryResult.Builds.Length > 0)
{
status = queryResult.Builds[0].Status.ToString();
}
return status;
}
này hoạt động ở mức độ nào nhưng nếu có nhiều xây dựng trong hàng đợi tôi không có cách nào biết được trong phương pháp bỏ phiếu này nếu xây dựng Tôi làm việc với là thứ tôi xếp hàng trong phương thức đầu tiên. Có ai có bất kỳ ý tưởng những gì tôi có thể làm để lấy lại các xây dựng cụ thể đó là xếp hàng trong phương pháp đầu tiên?
Cảm ơn!
Nếu tôi không biết Uri khi tôi tham gia phương pháp bỏ phiếu, làm thế nào tôi có thể tìm ra công trình nào mà tôi đang tìm kiếm? – dparsons
Thay vì trả lại số bản dựng trong phương thức đầu tiên, hãy trả về 'Build.Uri' – DaveShaw
Điều đó sẽ không hoạt động. Thuộc tính Build của queuedBuild là null nếu có một build khác phía trước build mà tôi đang khởi động. – dparsons