有没有办法使用TFS API以编程方式确定visual studio中open sln/proj的当前工作空间?我已经看到VersionControlServer如何可以检索所有已知的工作区,但有什么我可以用来将它与用户当前拥有(或没有)打开的东西联系起来吗?
GetWorkspace
对实例化VersionControlServer
对象的方法有另一种覆盖.您可以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);