1

そのため、ページのどこかにTFSファイルのフルパスを表示するWebサイトを実行しているので、ユーザーがそれをクリックできるようにします。これにより、VisualStudio内のTFSからそのファイルを開くことができます

Visual Studio内でこれを行うコマンドは、「File.TfsOpenFromSourceControl」(DTEコマンド)です。基本的に、ユーザーはソース管理エクスプローラーを使用してそのファイルに手動で移動し、ダブルクリックして開きます。

ブラウザ内のWebアプリからそのアクションをシミュレートしたいと思います。

更新:Webアプリは、Jqueryを使用できる純粋なASPNetMVCアプリです。私はすでにファイルのコンテンツをWebアプリでユーザーに表示しています。しかし、ユーザーがWebアプリでファイルパスをクリックして、VisualStudioで同じファイルを開くようにします。問題は、ブラウザからVSへの統合と、ブラウザのWebアプリコンテキスト内から問題のDTEコマンドを実行する方法です。

手がかりは役に立ちます

4

1 に答える 1

0

Pavelの質問に対する答えがわからないので、両方のソリューションの概要をスケッチします。

  • ブラウザ内にファイルを表示する場合は、Item.DownloadFile()APIを呼び出します。注意:2008 SP1には、ファイルシステムに直接書き込む代わりにメモリバッファにストリーミングできる、このメソッドの別のオーバーロードがあります。Itemオブジェクトを直接操作していない場合は、GetItem()/ GetItems()APIを介してそれらを取得できます。

  • VSでファイルを開きたい場合は、いくつかの方法があります。おそらく、Webアプリには、ソース管理エクスプローラーと同様に、ユーザーのローカルワークスペースの概念がすでに含まれています。その場合は、Workspace.GetLocalItemForServerItem()を呼び出してアイテムのローカルパスを見つけ、ShellExecuteを実行します。(または、VSにネイティブに関連付けられていない場合は、コマンドラインパラメーターとしてdevenv.exeに渡します。)そうでない場合は、ユーザーに代わって一時ワークスペースを作成するか、前に示したものと同じDownloadFile()APIを使用できます。 ; Webサービスを介してコンテンツをクライアントにストリーミングし、ディスクに保存してから、前と同じようにVSを起動します。

当然、オプション#2でのより複雑なシナリオでは、DOM/Javascriptが提供できるよりも深いOS統合が必要になります。このWebアプリがすでにActiveX、Flash、Silverlight、XBAP、または同様のテクノロジーで構築されているかどうかを知るのに役立ちます...

于 2009-10-14T05:27:15.247 に答える