TFS API TeamProjectCollection GetService <ibuildserver>()返回null对象</ibuildserver>

时间:2013-07-22 07:19:18

标签: c# visual-studio-2010 visual-studio tfs tfs2010

我已经编写了下面的代码来通过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);
}

任何想法?

2 个答案:

答案 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就是一个类。