通过TFS API识别"当前"打开工作区?

JPe*_*ero 13 api tfs

有没有办法使用TFS API以编程方式确定visual studio中open sln/proj的当前工作空间?我已经看到VersionControlServer如何可以检索所有已知的工作区,但有什么我可以用来将它与用户当前拥有(或没有)打开的东西联系起来吗?

小智 13

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);
Run Code Online (Sandbox Code Playgroud)


Ber*_*ann 1

如果您可以确定解决方案或项目文件的物理路径,那么您可以在 TFS 中查询该文件,并且您应该看到哪个工作区已映射到该本地文件位置。