2011-06-24 5 views
6

最後に展開されたビルド以降のチェンジセットおよび関連する作業項目の履歴に基づいて、プログラムによって展開電子メールを生成しています。 Visual Studio内のビルドサマリー情報のように見えます(しかし、多くのビルドを組み合わせたもの)。TFSアイテムのURLを表示可能なものにマップする方法

は、私は有用なデータ内のURL(のようなvstfs:///VersionControl/Changeset/205151)が、TFS SDKに新しいものがあるように表示されない場合は/これは、閲覧可能なアイテムにマッピングする方法(例のhttp:// tfsserver:ポート/ somepath/...)。 Visual Studio内のビルドサマリーリンクはクリック可能ですが、VSのみのリンクですか?

可能であれば、関連項目を開く電子メールに(ブラウザで)リンクを含めたいので、私はTFSパスがウェブブラウジング可能かどうかを知る必要があると思います。

提案が歓迎されました。ありがとう。

答えて

6

次のみTFSによって消費されることが期待されているTFSにvstfsリンクは、「案件のID」と呼ばれ、内部データされている作業項目に

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

+6

これは、TFS 2005および2008での作業項目追跡WebサービスのURLです(2010年には、おそらくhttp:// server:port/tfs/CollectionName/...を使用することになります) http:// server:port /。)これにより、作業項目の表示に制限されたアクセスが提供されます。同様に、http:// server:port/VersionControl/Changeset.aspx?artifactMoniker = ...を使用してチェンジセットを表示することができます。ただし、TFS Web Accessは、Webサービスが提供する読み取り専用ビューよりも優れている可能性があります。 –

+1

治療を受けてください。どうもありがとう。 @Edward Thomson:+1チェンジセットの追加版をありがとう。 –

3

にアクセスするための標準のURLのようですクライアント。 TFSクライアントはそのデータを解析し、そのデータをどのように表示するかを決定します。あなたが提供するようなチェンジセットリンクの場合、リッチクライアントはチェンジセットの詳細を含むダイアログを開きます。 WebクライアントはそのリンクをURIに変換します。そして、さまざまなTFSライブラリは、そのIDを使用してあなたにこのアーティファクトに関するより多くのデータを提供することができます。

TFS Web Accessへの独自のリンクを作成する場合、これを行うための厳密な正しい方法は、サーバー上の情報を照会することです。 TswaClientHyperlinkServiceを取得したら、チェンジセットの表示やワークアイテムの表示など、さまざまなサービスのWebアクセスURIをクエリできます。いくつかの例はMartin Woodward's blogに示されています。

13

これは私が作業項目にアクセスするために使用されているURLである、

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

編集 私が指定した形式がTFS 2010で動作しないことが基本的にパスを生成し、 Webビューの作業項目。これをクリックすると、Webビューで作業項目が開きます。

代わりに、ナビゲーション可能なURLをプログラムで取得することもできます。

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); 

サービス "TswaClientHyperlinkService"は、MicrosoftのTFSハイパーリンクサービスです。これにより、絶対パス、相対パス、パスとクエリのURLフォーマットが生成されます。

HTH、

乾杯、タルン

PS - 私は間違っていることが嫌い!ハハハ... enter image description here

EDIT そして、あなたの場合には、あなたがURIを用意して、あなたはすでにTFSのAPIを使用しているので、次の2行のコードは、トリックを行うだろう。

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

これは、https://ServerName:PortNumber/defaultcollection/VersionControl/Changeset.aspx?artifactMoniker=205151

HTH、

乾杯、TFS2012でタルン

+0

tfs/web/wi.aspxこれは2008 TFSサーバー上の有効なページと同じではありません。ダニエルの作業項目解決策は、Edwardによるチェンジセットの追加と同様に機能しました。 –

+0

あなたはちょうど私の日を保存しました、ありがとう! :) – casaout

0

を生成します、追加のpcguid URLパラメータが存在する必要があります。ここでは新しいフォーマットは@TarunAroraによって与えられた優れたソリューションを拡張、です:

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

This blog postは、Visual Studio経由pcguidを検索する方法について説明します。

  1. 行くに「未解決の問題:私のようなあなたが(!聞かないでください)Visual Studioにインストールすることなく、TFSを使用しようとしている場合

    しかし、ここでは、ブラウザベースのTFSのインタフェースを使用する代替です"

  2. 作業項目ペインの右上にあるエンベロープのようなボタン(「電子メールとしてクエリを送信」)をクリックします。
  3. メール内のリンクの1つを右クリックし、リンクの場所をコピーしてください。
  4. 送信せずにメールをキャンセルしてください。
  5. リンクの場所をテキストエディタに貼り付け、pcguidの値を抽出します。
関連する問題