2011-06-24 23 views
6

Chúng tôi đang lập trình tạo ra các email triển khai, dựa trên lịch sử của changesets và workitems liên quan kể từ khi triển khai xây dựng trước. Họ trông giống như thông tin tóm tắt xây dựng bên trong Visual Studio (nhưng với nhiều bản dựng được kết hợp).Làm thế nào để ánh xạ một mục url TFS để một cái gì đó có thể xem

Có vẻ như là URL hữu ích trong các dữ liệu (như vstfs:///VersionControl/Changeset/205151), nhưng bị mới cho TFS SDK Tôi không nếu/cách này các bản đồ cho một hiển thị mục (ví dụ http: // tfsserver: port/somepath/...). Các liên kết tóm tắt xây dựng bên trong Visual Studio có thể nhấp được, nhưng chúng là các liên kết chỉ có VS?

Nếu có thể, chúng tôi muốn bao gồm các liên kết trong email mở mục có liên quan (trong trình duyệt?), Vì vậy tôi đoán tôi cần biết đường dẫn TFS có thể duyệt web hay không và nếu có thì làm cách nào?

Đề xuất được hoan nghênh. Cảm ơn.

Trả lời

6

Sau đây có vẻ là url tiêu chuẩn cho việc truy cập hạng mục công trình

http://TFS_Name:port_number/WorkItemTracking/Workitem.aspx?artifactMoniker=work_Item_Id

+6

Đây là URL cho dịch vụ web theo dõi mục công việc, trong TFS 2005 và 2008. (Năm 2010, bạn có thể muốn sử dụng http: // server: port/tfs/CollectionName/... thay vì chỉ http: // server: port /.) Điều này sẽ cung cấp quyền truy cập hạn chế để xem các mục công việc. Tương tự, bạn có thể sử dụng http: // server: port/VersionControl/Changeset.aspx? ArtifactMoniker = ... để xem một changeset. Tuy nhiên, TFS Web Access có thể vượt trội so với các khung nhìn chỉ đọc mà các dịch vụ web cung cấp. –

+1

Làm việc điều trị. Cảm ơn nhiều. @Edward Thomson: +1 Cảm ơn phiên bản thay đổi bổ sung. Làm việc một điều trị –

3

Các liên kết vstfs được gọi là "vật ID" và dữ liệu nội bộ để TFS mà dự kiến ​​sẽ chỉ được tiêu thụ bởi một TFS khách hàng. Một khách hàng TFS sẽ phân tích dữ liệu đó và xác định cách hiển thị dữ liệu đó. Đối với một liên kết thay đổi như bạn cung cấp, các khách hàng phong phú sẽ mở ra một hộp thoại với các chi tiết changeset. Máy khách web sẽ dịch liên kết đó thành URI. Và các thư viện TFS khác nhau có thể cung cấp cho bạn nhiều dữ liệu hơn trên tạo phẩm này bằng cách sử dụng ID đó.

Nếu bạn muốn tạo liên kết của riêng bạn để TFS Web Access, cách nghiêm chỉnh thích hợp để làm điều này là để truy vấn một số thông tin trên máy chủ. Một khi bạn có một TswaClientHyperlinkService, bạn có thể truy vấn URI Web Access cho các dịch vụ khác nhau, chẳng hạn như xem một changeset hoặc xem một mục công việc. Một số ví dụ được hiển thị trên Martin Woodward's blog.

13

Đây là URL mà tôi đã được sử dụng để truy cập vào hạng mục công trình,

=>http://ServerName:PortNumber/tfs/web/wi.aspx?id=xxidxx

Sửa Định dạng tôi đã chỉ định không hợp tác với TFS năm 2010. Về cơ bản nó tạo ra đường dẫn đến mục công việc trong dạng xem Web. Nhấp vào đây sẽ mở mục công việc trong chế độ xem web.

Là một thay thế, bạn có thể có được một URL navigatable lập trình là tốt.

var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TFSURL")); 
var versionControl = tfs.GetService<ICommonStructureService>(); 

var projects = versionControl.ListAllProjects(); 

var myService = tfs.GetService<TswaClientHyperlinkService>(); 

var myUrl = myService.GetChangesetDetailsUrl(21); 

Vì vậy, dịch vụ "TswaClientHyperlinkService" là microsofts Dịch vụ siêu liên kết TFS. Điều này sẽ tạo ra các định dạng url cho đường dẫn tuyệt đối, đường dẫn tương đối, đường dẫn và truy vấn, blah blah.

HTH,

Chúc mừng, Tarun

PS - Tôi ghét phải là sai !!! hahaha ... enter image description here

EDIT Và vì trong trường hợp của bạn, bạn có URI có sẵn và bạn đã đang sử dụng API TFS, hai dòng sau mã sẽ làm các trick.

var testManagementService = tfs.GetService<ILinking>(); 
var testControllers = testManagementService.GetArtifactUrl(@"vstfs:///VersionControl/Changeset/205151"); 

này sẽ tạo ra, https://ServerName:PortNumber/defaultcollection/VersionControl/Changeset.aspx?artifactMoniker=205151

HTH,

Chúc mừng, Tarun

+0

tfs/web/wi.aspx Không tương đương với một trang hợp lệ trên máy chủ TFS 2008 của chúng tôi. Giải pháp workitem từ Daniel đã làm việc như đã làm thay đổi changeset của Edward. –

+0

Bạn vừa mới cứu ngày của tôi, cảm ơn! :) – casaout

0

Trong TFS2012, một tham số pcguid URL bổ sung cần phải có mặt. Dưới đây là các định dạng mới, mở rộng các giải pháp tốt do @TarunArora:

http://ServerName:PortNumber/tfs/web/wi.aspx?pcguid=xxguidxx&id=xxidxx

This blog post mô tả làm thế nào để tìm ra pcguid qua Visual Studio.

Tuy nhiên, nếu như tôi bạn đang cố gắng sử dụng TFS mà không cần cài đặt Visual Studio (! Đừng hỏi), đây là một sự thay thế bằng cách sử dụng giao diện TFS dựa trên trình duyệt:

  1. Đến "Open vấn đề "
  2. Nhấp vào nút trông giống như phong bì (" Gửi truy vấn dưới dạng email ") ở trên cùng bên phải của ngăn mục công việc.
  3. Nhấp chuột phải vào một trong các liên kết trong email và sao chép vị trí liên kết
  4. Hủy email mà không gửi.
  5. Dán vị trí liên kết vào trình chỉnh sửa văn bản và trích xuất giá trị pcguid.
Các vấn đề liên quan