TFS 2008 服务器不支持 versionControl.QueryRootBranchObjects() 方法,因为 TFS 2008 不理解 TFS 2010 中引入的“一流”分支的概念。但是,您仍然可以通过提供您的自己的分支列表。
例如,如果您将上面示例中的第 11-25 行替换为以下代码,它应该可以工作:
var teamBranches = new String[] { "$/project/Main", "$/project/Dev" };
filePatterns.Dump("File patterns");
textPatterns.Dump("Text patterns");
foreach (var teamBranch in teamBranches)
foreach (var filePattern in filePatterns)
foreach (var item in versionControl.GetItems(teamBranch + "/" + filePattern, RecursionType.Full).Items)
SearchInFile(item);
显然,您需要将 $/project/main 和 $/project/dev 替换为您想要搜索的分支。
如果您有任何问题,请告诉我。
编辑
因为您使用的是 TFS 2008,所以还需要调整其他几行。而不是包括
Microsoft.TeamFoundation.Framework.Client
只包括
Microsoft.TeamFoundation.Client
而不是这一行:
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://localhost:8088/tfs"));
试试这个
// Note, 2008 servers don't use "/tfs" and I can't remember if they take a Uri
// or a string.
var tfs = new TeamFoundationServer("http://localhost:8080");