启动附加到 Outlook 的 VS 2010 调试器来调试插件时遇到困难

问题描述 投票:0回答:2

我正在尝试使用 Visual Studio 2010 和 WPF 用 C# 编写 Outlook 插件,但事实证明它很难调试。我希望 VS 在启动时自动附加到 OUTLOOK.EXE,以便我可以轻松命中断点。因此,我进入项目的属性 > 调试选项卡 > 启动操作,并将此设置从“启动项目”(这当然不起作用,因为它是 DLL)更改为“启动外部程序”。

这似乎有效; Outlook 启动,并且显然已附加调试器。但是,没有遇到断点。我注意到,当我进入“附加到进程”对话框时,它说 Outlook 仅运行 x86(我认为这是不正确的,因为我的托管代码正在该地址空间中运行 - 对吗?),因此在“调试”选项卡中在“设置”面板中,我单击“启用非托管代码调试”,但现在我没有主意了。我也无法暂停该进程,因为我收到一条错误,告诉我该进程没有运行我选择调试的代码类型。我知道我的插件肯定已加载并正在执行,因为我可以看到它正在工作。

作为一种解决方法,我一直在使用 System.Diagnostics.Debugger.Launch(),这很烦人,但它确实有效。有什么想法吗?

visual-studio visual-studio-2010 debugging outlook-addin
2个回答
4
投票

事实证明,Outlook 在启动时不会加载 CLR(必须在必要时立即加载),这显然使 VS 调试器感到困惑,导致它只能调试本机代码。要强制它立即加载 CLR,请在同一文件夹中创建一个 OUTLOOK.EXE.config 文件:

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727"/> <!-- or whatever -->
   </startup>
</configuration>

来自这篇博文。然后,即使 VS 开始附加,它也会调试 CLR 代码


1
投票

这里是如何正确配置 VS 2010 的精彩解释:
链接
请遵循“在 Visual Studio 2010 中调试针对 CLR 2.0 的加载项”。

© www.soinside.com 2019 - 2024. All rights reserved.