1

所以我有一个网站正在运行,它在页面上某处显示TFS 文件完整路径,我希望用户能够点击它,然后应该在他们的Visual Studio中从 TFS 打开该文件。

在 Visual Studio 中执行此操作的命令是“ File.TfsOpenFromSourceControl ”(DTE 命令)——它基本上是用户使用源代码管理资源管理器手动转到该文件并双击打开它。

我想从浏览器中的网络应用程序模拟该操作。

更新:Web 应用程序是一个纯 ASPNet MVC 应用程序,可以使用 Jquery。我已经在网络应用程序中向用户显示文件的内容。但我希望用户通过单击 Web 应用程序中的文件路径在 Visual Studio 中打开相同的文件。问题更多的是浏览器到 VS 的集成以及如何从浏览器的 Web 应用程序上下文中执行有问题的 DTE 命令。

任何线索都会有所帮助

4

1 回答 1

0

我不知道 Pavel 问题的答案,所以我将概述这两种解决方案。

  • 如果要在浏览器中显示文件,请调用Item.DownloadFile() API。注意:在 2008 SP1 中,此方法还有另一个重载,允许流式传输到内存缓冲区而不是直接写入文件系统。如果您尚未直接使用 Item 对象,则可以通过 GetItem() / GetItems() API 检索它们。

  • 如果要在 VS 中打开文件,有几种方法。也许您的 Web 应用程序已经包含用户本地工作空间的概念,类似于源代码管理资源管理器。如果是这样,您只需调用 Workspace.GetLocalItemForServerItem() 来查找项目的本地路径,然后 ShellExecute 它。(或者可能将它作为命令行参数传递给 devenv.exe,如果它本身没有与 VS 关联。)如果没有,您可以代表用户创建一个临时工作区,或者使用前面显示的相同 DownloadFile() API ; 通过 Web 服务将内容流式传输到客户端,保存到磁盘,然后像以前一样启动 VS。

自然,选项 #2 下涉及的更多场景将需要比 DOM / Javascript 所能提供的更深入的操作系统集成。将有助于了解此 Web 应用程序是否已基于 ActiveX、Flash、Silverlight、XBAP 或类似技术构建...

于 2009-10-14T05:27:15.247 回答