3

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

任何想法?

4

2 回答 2

2

如果您Microsoft.TeamFoundation.Build.Client为尝试连接的 TFS 引用了错误的版本,则可能会发生这种情况。检查您是否引用了 TFS2010 的正确版本(我相信是 10.0.0.0)。

http://pmichaels.net/2015/03/20/unable-to-get-ibuildserver-always-returning-null/

于 2015-03-20T08:04:49.630 回答
0

尝试var bs = (IBuildServer)tpc.GetService(typeof(IBuildServer));有时GetService<>()对我不起作用,可能是因为 IBuildServer 是一个接口,而 VersionControlServer 例如是一个类。

于 2013-07-22T08:22:27.710 回答