有沒有一種方法可以在使用TFS API的visual studio中以編程方式確定open sln/proj的當前工作空間?我已經看到了VersionControlServer如何檢索所有已知的工作區,但是有什麼我可以用來將它與用戶當前(或沒有)打開的東西聯繫起來嗎?通過TFS API識別'當前'開放工作區?
12
A
回答
1
如果您可以確定解決方案或項目文件的物理路徑,那麼您可以在TFS中查詢該文件,並且應該看到哪個工作區已映射到該本地文件位置。
10
對實例化的VersionControlServer
對象有GetWorkspace
方法的另一個覆蓋。您可以撥打GetWorkspace
與本地路徑(如Bernhard狀態),但您也可以使用工作區名稱和工作區所有者來調用它。由於工作區名稱默認爲本地計算機名稱,因此通常可以使用Environment.MachineName
,但總是會有更改工作區名稱的開發人員。
例子:
TeamFoundationServerFactory _tfs = TeamFoundationServerFactory.GetServer(server);
_tfs.EnsureAuthenticated();
VersionControlServer _vcs = (VersionControlServer)_tfs.GetService(typeof(VersionControlServer));
Workspace _ws = _vcs.GetWorkspace(Environment.MachineName, Environment.UserName);
1
與戴夫Teply該方法的問題在於,它假定你已經有了一個VersionControlServer
或者至少是TeamFoundationServerUri
的一個實例。
雖然有一個更強大的方法,using the Workstation
class。 Ricci Gian Maria has written a quite extensive blog post關於這個話題。下面的片段是該帖子的要點:
使用Workstation類爲要查找的路徑獲取WorkspaceInfo,這將搜索在該工作站上註冊的所有TFS服務器的工作空間,以查看是否存在匹配:
Workstation workstation = Workstation.Current;
WorkspaceInfo info = workstation.GetLocalWorkspaceInfo(path);
現在,你有WorkspaceInfo,你可以起訴它連接到TFS,工作區信息包含ProjectCollectionUri該特定團隊項目集合。並從工作區實例:
TfsTeamProjectCollection collection = new TfsTeamProjectCollection(info.ServerUri);
Workspace workspace = info.GetWorkspace(collection);
使用集合或工作區,然後獲得訪問VersionControlServer:
VersionControlServer versionControlServer = collection.GetService<VersionControlServer>();
相關問題
- 1. 通過API獲取拉力工作區前綴通過API
- 2. 運行TFS合併命令時無法識別工作區
- 3. 獲取當前變更ID在工作區TFS
- 4. 通過Outlook 2003通知TFS工作項?
- 5. 通過sudo識別當前用戶的最可靠方法
- 6. Ant junit任務無法識別當前工作目錄
- 7. 帶TFS 2010的VIsual Studio 2012通過模板創建工作區
- 8. Ember識別當前用戶
- 9. 識別當前視圖
- 10. TFS構建和工作區
- 11. Windows中當前目錄與工作目錄之間的區別
- 12. Visual Studio的C#:識別工作區是否創建
- 13. 當前區域/團隊的TFS宏?
- 14. 是開放圖片facebook登錄api目前的工作?
- 15. 如何通過打開api檢測IntelliJ的當前主題?
- 16. ResourcesPlugin.getWorkspace()不考慮當前打開的工作區
- 17. 谷歌地圖API的工作,只有當開發工具是開放
- 18. 識別當前可見分區的編號
- 19. 有沒有辦法在Visual Studio中顯示當前的TFS工作區?
- 20. 通過TFS數據庫修改TFS工作項目
- 21. 通過TFS工作項目SDK設置工作量估計
- 22. 通過鏈接工作項目查詢TFS工作項目?
- 23. 開放工作
- 24. 如何通過API識別經過驗證的Facebook頁面?
- 25. 識別線,放>前他們
- 26. TFS中的缺陷和缺陷工作項有何區別?
- 27. eclipse:如何區分/區分不同的開放工作區
- 28. 如何將Eclipse工作區與TFS工作區關聯?
- 29. 我可以識別當前iOS設備是否用於開發?
- 30. 使用TFS 2010 API來訂閱工作區事件
啊。我沒有意識到工作區的映射路徑必須是唯一的,但它是有道理的。太好了,謝謝! – JPero 2009-01-08 14:18:37