我已经编写了下面的代码来通过api对构建进行排队。团队项目集合,工作项存储和版本控制服务器工作正常,但我没有得到buildserver对象。它总是返回null。我错过了任何其他配置
using (TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/DefaultCollection")))
{
tpc.EnsureAuthenticated();
// i am getting workitemstore object here
var wiStore = tpc.GetService<WorkItemStore>();
....
....
// i am getting version control server object here as well
var vcs = tpc.GetService<VersionControlServer>();
....
....
// but here i get a null object
var bs = tpc.GetService<IBuildServer>();
//this is what i want to do with buildserver object
var buildDefinition = bs.GetBuildDefinition("aaa", "bbb");
var buildRequest = buildDefinition.CreateBuildRequest();
bs.QueueBuild(buildRequest);
}
任何想法?
答案 0 :(得分:2)
如果您为正在尝试连接的TFS引用了错误版本的Microsoft.TeamFoundation.Build.Client
,则可能会发生这种情况。检查您是否引用了TFS2010的正确版本(我相信10.0.0.0)。
http://pmichaels.net/2015/03/20/unable-to-get-ibuildserver-always-returning-null/
答案 1 :(得分:0)
尝试var bs = (IBuildServer)tpc.GetService(typeof(IBuildServer));
有时GetService<>()
对我不起作用,可能是因为IBuildServer是一个接口,而VersionControlServer就是一个类。