如何远程调试VSTO Outlook插件?

7
我已经构建了一个Outlook插件,想要在我的开发机器上运行的虚拟机中进行远程调试(虚拟机是xpsp3 x32和Outlook 2010,我的开发机器是7 x64和Outlook 2007)。
我已经(在处理用户帐户等方面)成功地实现了VS2010和Virtual Box VM之间的远程调试。我可以附加到简单的测试应用程序并设置断点,它们会被命中。
然而,我似乎无法对Outlook插件执行相同的操作。我不能只附加到在机器上运行的outlook.exe进程,因为那样似乎不会加载插件模块,所以断点永远不会被命中。
我无法弄清楚如何让VS2010从本地构建的项目启动远程机器上的Outlook,我尝试遵循这些 MSDN文档,但设置工作目录的说明似乎不起作用,所以如果我按照示例设置并开始调试,它会显示一个消息说该文件夹不存在。
如果我将Outlook插件项目的调试属性中的“启动操作”设置为“启动外部程序”,并将其指向Outlook.exe,则VS2010将成功启动该应用程序,但是断点没有被触发,尽管它似乎表明已成功设置了断点。
有人成功地进行过远程调试VSTO插件吗?我做错了什么?
1个回答

4

我知道这是一个比较老的问题,但以防万一有人看到这篇文章,这里有一个解决方案:

  1. On the host machine, in the VSTO project, add this at the top of the startup method.

    MessageBox.Show("Debug"); 
    
  2. Deploy the add in to the remote machine, open Outlook and the MessageBox should display

  3. Run the Visual Studio Remote Debugging Monitor on the remote machine
  4. On the host machine, set a breakpoint on the line after the MessageBox
  5. In Visual Studio, select Debug/Attach to Process from the menu and attach to the Outlook process running on the remote machine
  6. On the remote machine, click on the OK button on the MessageBox you added in step 1
  7. The breakpoint you set in step 5 will now be hit

好主意,我会试一试! - Matt
哇,这是一个非常棒的解决方案。虽然我没有远程调试,但在 Outlook 2007 托管的 Exchange 帐户中无法保存登录凭据,在调试模式下 Outlook 拒绝弹出登录窗口。 - The Muffin Man
第二步。有没有自动化的方法?在本地机器上,VS可以在我们按下F5时自动部署插件。对于远程机器,我是否总是需要在进行远程调试之前创建安装程序并在目标机器上使用它? - dotNET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接