あなたのユースケースを理解している場合、特定の TFS バージョンの URL パターンを定義するよりも間違いなく優れた方法は、 を使用しTswaClientHyperlinkService
て URL を生成することです。この API クラスを使用して、たとえばGetWorkItemEditorUrl
メソッドを通じて、特定の作業項目 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 インスタンスはありませんが、指を交差させれば、異なるバージョンへの呼び出し間で透過的になります。
そうは言っても、この質問は以前に尋ねられました。ただし、受け入れられた回答のリンクの方法は、各リリースで導入された機能を識別することにより、異なるバージョンを導き出します。これは、2005 年、2008 年、2010 年の区別に当てはまります。2010 年と 2012 年を区別するために同じアプローチを使用できるかどうか (または、より適切な API メソッドが現在存在するかどうか) はわかりません。