Có cách nào để xác định không gian làm việc hiện tại của sln/proj mở trong studio trực quan bằng cách sử dụng API TFS không? Tôi đã thấy làm thế nào các VersionControlServer có thể truy xuất tất cả các không gian làm việc được biết đến, nhưng là có bất cứ điều gì tôi có thể sử dụng để buộc rằng những gì người dùng hiện đang có (hoặc không có) mở?Xác định không gian làm việc 'hiện tại' thông qua API TFS?
Trả lời
Nếu bạn có thể xác định đường dẫn vật lý của giải pháp hoặc tệp dự án, thì bạn có thể truy vấn tệp đó trong TFS và bạn sẽ thấy không gian làm việc nào được ánh xạ tới vị trí tệp cục bộ đó.
Có một cách ghi đè khác cho phương thức GetWorkspace
của đối tượng được hiển thị tức thời VersionControlServer
. Bạn có thể gọi GetWorkspace
với đường dẫn cục bộ như Bernhard, nhưng bạn cũng có thể gọi nó bằng tên không gian làm việc và chủ sở hữu không gian làm việc. Vì tên vùng làm việc mặc định là tên máy tính cục bộ, bạn thường có thể lấy đi bằng cách sử dụng Environment.MachineName
, nhưng sẽ luôn có nhà phát triển thay đổi tên vùng làm việc.
Ví dụ:
TeamFoundationServerFactory _tfs = TeamFoundationServerFactory.GetServer(server);
_tfs.EnsureAuthenticated();
VersionControlServer _vcs = (VersionControlServer)_tfs.GetService(typeof(VersionControlServer));
Workspace _ws = _vcs.GetWorkspace(Environment.MachineName, Environment.UserName);
Vấn đề với cách tiếp cận từ Dave Teply là nó giả sử bạn đã có một thể hiện của một VersionControlServer
hoặc ít nhất là TeamFoundationServerUri
.
Có một cách mạnh mẽ hơn mặc dù, using the Workstation
class. Ricci Gian Maria has written a quite extensive blog post về chủ đề này. Đoạn mã dưới đây là yếu tố cần thiết của bài đăng đó:
Sử dụng lớp Workstation để lấy WorkspaceInfo cho đường dẫn bạn đang tìm kiếm, điều này sẽ tìm kiếm không gian làm việc cho tất cả máy chủ TFS được đăng ký trên máy trạm đó để xem có khớp không :
Workstation workstation = Workstation.Current;
WorkspaceInfo info = workstation.GetLocalWorkspaceInfo(path);
Bây giờ bạn có WorkspaceInfo, bạn có thể kiện nó để kết nối với TFS, thông tin không gian làm việc chứa ProjectCollectionUri cho bộ sưu tập dự án nhóm cụ thể đó. Và từ đó các trường hợp Workspace:
TfsTeamProjectCollection collection = new TfsTeamProjectCollection(info.ServerUri);
Workspace workspace = info.GetWorkspace(collection);
Sử dụng các bộ sưu tập hoặc không gian làm việc để sau đó nhận được quyền truy cập vào các VersionControlServer:
VersionControlServer versionControlServer = collection.GetService<VersionControlServer>();
- 1. Không gian làm việc TFS qua VS 2010 và 2012?
- 2. Lỗi TFS: Không thể xác định không gian làm việc cho giải pháp này
- 3. Lấy id thay đổi hiện tại trên không gian làm việc cho TFS
- 4. Tại sao việc biên dịch thông qua MSBuild mất nhiều thời gian hơn thông qua IDE?
- 5. Khi nào tôi tạo không gian làm việc TFS?
- 6. Bạn có thể thực hiện TFS mà không cần không gian làm việc?
- 7. Có cách nào để hiển thị không gian làm việc TFS hiện tại trong Visual Studio không?
- 8. Nhập không gian làm việc của Visual Studio TFS
- 9. Tại sao đường dẫn không gian làm việc TFS của tôi tiếp tục tự bản thân?
- 10. TFS xây dựng định nghĩa và không gian làm việc tương đối đường
- 11. Làm thế nào để xác định người dùng đăng nhập thông qua api Facebook?
- 12. Có thể sửa đổi không gian làm việc eclipse thông qua dòng lệnh không?
- 13. Làm thế nào để bạn buộc xóa một không gian làm việc TFS 2010 trên máy khách khi máy chủ TFS không còn tồn tại?
- 14. Thời gian mặc định của MySQL thông qua phpmyadmin
- 15. Xác minh người dùng thông qua PayPal GetVerifiedStatus API
- 16. require.js - module không xác định thông qua như là đối số để xác định callback
- 17. m2Eclipse plugin: 'Giải quyết các không gian làm việc hiện tại' làm gì?
- 18. xác thực sử dụng Facebook thông qua Rails API
- 19. Không thể xác định không gian làm việc sử dụng tf.exe
- 20. Nhận kết nối TFS hiện tại trong Visual Studio addin
- 21. Dòng lệnh TFS để nhận tất cả thông tin bản đồ của một không gian làm việc cụ thể
- 22. C# - Định dạng thời gian hiện tại
- 23. Cách xác định yêu cầu (theo ID) thông qua chuỗi trung gian trong Express.
- 24. Bỏ qua mẫu cho không gian làm việc eclipse
- 25. Chương trình xác thực không xác định trên LinkedIn API
- 26. Xác định DPI theo chương trình thông qua trình duyệt?
- 27. Làm cách nào để xác định mối quan hệ Nhiều-với-Nhiều qua Khuôn khổ thực thể API thông thạo?
- 28. Tại sao ARG_MAX không được xác định qua giới hạn.h?
- 29. Nên nhiều dự án có nhiều không gian làm việc TFS?
- 30. Thông báo email TFS
Ah. Tôi đã không nhận ra rằng con đường được ánh xạ cho một không gian làm việc phải là duy nhất, nhưng nó có ý nghĩa. Thật sự cảm ơn! – JPero