2016-01-05 67 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調用。 –