【问题标题】:Difficulty starting VS 2010 debugger attached to Outlook to debug plugin难以启动附加到 Outlook 的 VS 2010 调试器以调试插件
【发布时间】:2011-03-13 00:19:04
【问题描述】:

我正在尝试使用 Visual Studio 2010 和 WPF 在 C# 中编写 Outlook 插件,结果发现它很难调试。我想让 VS 在启动时自动附加到 OUTLOOK.EXE,这样我就可以轻松地打断点。因此,我进入了项目的属性 > 调试选项卡 > 启动操作,并将此设置从“启动项目”(当然因为它是一个 DLL 不会起作用)更改为“启动外部程序”。

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

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

【问题讨论】:

    标签: visual-studio visual-studio-2010 debugging outlook-addin


    【解决方案1】:

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

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

    来自this blog post。然后,即使 VS 启动附加,它也会调试 CLR 代码

    【讨论】:

      【解决方案2】:

      以下是如何正确配置 VS 2010 的绝佳说明:
      http://blogs.msdn.com/b/mshneer/archive/2010/03/19/com-shim-wizards-for-vs-2010.aspx
      遵循“在 Visual Studio 2010 中调试面向 CLR 2.0 的加载项”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-09
        • 1970-01-01
        • 2013-09-29
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 2012-01-15
        相关资源
        最近更新 更多