我想要獲取特定TeamProject的Web訪問頁面的URL。以編程方式獲取TFS團隊項目的WebAccess的URL
我發現使用調用GetHomeUrl(新的Uri(「MyprojectName」))的TswaClientHyperlinkService對象的一些示例,但我無法爲此提供正確的Uri值。也許我不明白如何格式化參數..
我知道如何獲得webaccess的基礎url,但我想要訪問特定Team Team Collection中的特定Team Project的頁面。
我想要獲取特定TeamProject的Web訪問頁面的URL。以編程方式獲取TFS團隊項目的WebAccess的URL
我發現使用調用GetHomeUrl(新的Uri(「MyprojectName」))的TswaClientHyperlinkService對象的一些示例,但我無法爲此提供正確的Uri值。也許我不明白如何格式化參數..
我知道如何獲得webaccess的基礎url,但我想要訪問特定Team Team Collection中的特定Team Project的頁面。
事實證明,GetHomeUrl
方法預計vsts://
url,而不是您通常使用的項目集合的URL。下面的代碼可以用來得到URI:
var server = TfsConfigurationServerFactory.GetConfigurationServer(new Uri("http://localhost:8080/tfs" /* your tfs uri here */));
server.Authenticate();
var service = server.GetService<TswaClientHyperlinkService>();
var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://localhost:8080/tfs/DefaultCollection"));
var cssService = projectCollection.GetService<ICommonStructureService3>();
var project = cssService.GetProjectFromName(/*YourProjectNameHere*/);
var home = service.GetHomeUrl(new Uri(project.Uri));
很好的答案,除了一點細節外,對我來說工作正常: 對於TFS2010,接口ICommonStructureService4不可用,它用於TFS2012。但ICommonStructureService3在TFS2012下正常工作 – ulfgebhardt
@jessehouwing 謝謝您的回答,我也有同樣的想法,但ID沒有爲我工作。它會導致「參數異常:格式錯誤的工件URI:https:// mytfs/tfs/collection/project」。該URI是正確的,所以我不明白。 – ulfgebhardt
是的,uri是完整且有效的 – ulfgebhardt
您是否想要在SharePoint('http:// yourtfs:8080/tfs/ProjectCollection/Project')或WebAccess中獲取TeamProject站點的URL(例如'http:// TFS:8080/TFS /網絡/ Index.aspx的普瑞= vstfs%3A%2F%2F%2FClassification%2FTeamProject%2Fa33f88ab-839c-4ece-99e4-7fac491daed7')?我希望你正在使用TFS2010的API,對吧? – MikeR