【问题标题】:Getting the BuildAgent information from a Build从 Build 中获取 BuildAgent 信息
【发布时间】:2011-08-01 18:15:36
【问题描述】:

我有一个 IBuildDetail 变量,其中包含我需要的构建信息。

好的,但是当我检查属性 BuildAgent 时,它显示如下:build.BuildAgent' 抛出了“System.NotImplementedException”类型的异常

然后我尝试检查 build.BuildController.Agents,很高兴我找到了 BuildAgent,但是这个集合中有 7 个构建代理。我只需要与我的构建相关的构建代理,而不需要来自该控制器的所有构建代理。

有人知道如何获取这些信息吗? (使用 IBuildDetail 变量选择构建代理名称或机器名称)

->我正在使用 TFS2010 api,我需要每个构建的代理是什么

【问题讨论】:

    标签: .net tfsbuild tfs-sdk


    【解决方案1】:
    【解决方案2】:

    就像 Duat 说的那样。
    为了回答 this 的问题,我有机会对此进行探索。
    以下内容适用于给定的 IBuildDetail buildDetail 并可以访问 IBuildServer buildService

    IBuildInformation buildInformation = buildDetail.Information;
    IBuildInformationNode[] buildInformationNodes = buildInformation.Nodes;
    string agentUri = buildInformationNodes[0].Children.Nodes[3].Fields["ReservedAgentUri"];
    IBuildAgent buildAgent = buildService.GetBuildAgent(new Uri(agentUri));
    

    【讨论】:

    • 幻数 (0, 3) 是“不可以”!您提供的链接中的解决方案要好得多 - 例如 Hamid Shahid 的函数 GetBuildAgentName
    【解决方案3】:

    在 Run On Agent 范围内,您需要有一个 GetBuildAgent 活动,该活动将 BuildAgent 详细信息分配给 IBuildAgent 类型的变量。

    然后您可以访问该变量的属性以访问有关构建代理的数据:http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildagent.aspx

    注意:默认的构建工作流程已经这样做了。

    【讨论】:

    • 我正在使用 TFS2010 api 来访问 BuildAgent 信息。我不与世界自然基金会合作。这是我的代码:IBuildDetail build = ..... ; build.BuildAgent ... -> 它引发异常...
    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2021-01-06
    • 2023-03-21
    • 2016-09-03
    • 2014-05-12
    • 2018-06-18
    • 2014-10-20
    • 2021-07-01
    相关资源
    最近更新 更多