提供我瞭解您的使用案例替代方案,並且可以說比爲給定的TFS版本定義URL模式更好的方法是使用TswaClientHyperlinkService
來生成您的URL。例如,通過GetWorkItemEditorUrl
方法,您可以使用此API類爲給定的工作項Id生成URL;例如使用V11客戶端dll:
var collection = new TfsTeamProjectCollection(
new Uri("http://<tfsuri>/tfs/<collection>/"));
var hyperlinkService = collection.GetService<TswaClientHyperlinkService>();
var link = hyperlinkService.GetWorkItemEditorUrl(<workitemid>);
// against TFS 2012:
// var link:
// http://<tfsuri>/tfs/web/wi.aspx?pcguid=<guid>&id=<workitemid>
// redirects to
// http://<tfsuri>/tfs/<collection>/<project>/_workitems#_a=edit&id=<workitemid>
我沒有得到一個TFS 2010實例來測試這種反對,但手指交叉,這將是在調用不同版本透明。
這一切都說,這個問題已經asked before。但是,接受答案鏈接中的方法通過標識每個版本中引入的功能來派生出不同的版本。這適用於區分2005年,2008年和2010年。我不知道是否可以使用相同的方法來區分2010年和2012年(或者現在是否存在更友好的API方法)。
謝謝!這工作完美 – ChrisG 2013-02-28 23:13:19
我實現了這個https://github.com/camilin87/tfsversion – 2014-06-19 19:15:17