【问题标题】:Can't find build definition in TFS 2015在 TFS 2015 中找不到构建定义
【发布时间】:2016-01-07 16:17:28
【问题描述】:

我在玩 TFS2015 和可编程性。我在其中创建了一个集合和一些团队项目。此外,我创建了一些构建定义,但是当我尝试以编程方式访问它时,我得到一个异常,告诉我找不到定义。

Uri teamCollectionUri = new Uri("http://tfs-playground:8080/tfs/MyCollection");
TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection(teamCollectionUri);
teamProjectCollection.EnsureAuthenticated();

IBuildServer buildServer = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer));

var definition = buildServer.GetBuildDefinition("FakeService", "Build fake service");

但是,当我检查 Web UI 时,我会在此处看到构建定义。我在这里错过了什么?

编辑:

var builds = buildServer.QueryBuildDefinitions("FakeService")

也不返回任何构建定义?!?

【问题讨论】:

  • FakeService 构建定义是非 XAML 构建定义?
  • IBuildServer.GetBuildDefinition(我的项目,我的定义名称)这将返回给定团队项目中具有给定名称的构建定义。 msdn.microsoft.com/en-us/library/cc339946.aspx你的定义满足需求了吗?
  • @ds19 是的,它是一个非 XAML 构建定义
  • BuildDefinition null的可能重复
  • 你需要使用BuildHttpClient。查看我的回答 herehere

标签: c# tfs-2015


【解决方案1】:

如果您想将其用于 XAML 构建定义。您的代码是准确的,没有任何问题。根据您的例外情况,请确保您已添加所有需要的参考。

如果你想用它来获取 VNext 构建定义。正如 Daveshaw 所提到的,这不受支持。您需要使用 Rest API

https://{your-project}.visualstudio.com/defaultcollection/taeguk/_apis/build/definitions?api-ver

更详细 BuildDefinition null

更新:对于新的 vNext 版本,现在不支持所有旧 API。您只能使用的是 Rest API。这是向 Microsoft 提交的功能请求。

【讨论】:

  • 牢记这篇文章非常重要,因为它为我节省了大量时间。 TfsTeamProjectCollection 不支持 2.0 API 调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2016-04-24
相关资源
最近更新 更多