2016-01-05 27 views
1

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

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"); 

但是,当我检查网络用户界面,我看到那里的构建定义。我在这里错过了什么?

编辑:

var builds = buildServer.QueryBuildDefinitions("FakeService") 

不返回任何生成定义要么?!?

+0

FakeService构建定义是一个非XAML构建定义? – ds19

+0

IBuildServer.GetBuildDefinition(我的项目,我的定义名称)这将返回给定团队项目中给定名称的构建定义。 https://msdn.microsoft.com/en-us/library/cc339946.aspx您的定义是否满足需求? –

+0

@ ds19是的,这是一个非XAML构建定义 – Apeiron

回答

0

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

如果您想使用它来获取VNext构建定义。正如Daveshaw所说,这不被支持。您需要使用REST API

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

更详细的 BuildDefinition null

更新:新vNext打造,所有旧的API不支持现在。您只能使用Rest API。这是一份向微软提交的功能请求。

+0

保留这篇文章非常重要,因为它为我节省了大量时间。通过'TfsTeamProjectCollection'不支持2.0 API调用。 –