對於TFS 2008服務器,versionControl.QueryRootBranchObjects()方法不受支持,因爲TFS 2008不理解在TFS 2010中引入的「first-class」分支的概念。但是,仍然可以完成這通過提供你自己的分支清單。
舉例來說,如果你在上面這段代碼的樣本中替換線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);
很顯然,你將要替換$ /項目/主及$ /項目/開發你想要搜索的分支。
讓我知道如果您有任何問題。
編輯
因爲你正在使用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");
所以,現在我想你的解決方案,我得到一個SearchInFile函數中的錯誤基本上是statin克,我沒有正確的參考項目....我相信是Microsoft.TeamFoundation.Framework.Client.dll。這是因爲我沒有關於tfs 2010或2012的任何想法? PS非常感謝您的回答。 –
更新了答案,詳細介紹了2008年的情況。讓我知道你是否再次構建/鏈接錯誤。 –
再次感謝您的更新,我仍然收到錯誤消息。 :無法找到類型或命名空間名稱'Item'(按F4添加使用指令或程序集引用)我吹起私人無效SearchInFile(項目文件) –