如果我了解您的用例,另一种方法,可以说比为给定的 TFS 版本定义 URL 模式更好的方法是使用TswaClientHyperlinkService
来生成您的 URL。您可以使用此 API 类为给定的工作项 ID 生成 URL,例如,通过GetWorkItemEditorUrl
方法;例如使用 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 方法)。