Hut*_*ut8 7 debugging visual-studio-2010 visual-studio outlook-addin
我正在尝试使用Visual Studio 2010和WPF在C#中编写Outlook Addin,结果很难调试.我希望VS在启动时自动附加到OUTLOOK.EXE,这样我就可以轻松点击断点.所以,我进入了项目的属性>调试选项卡>启动操作,并将此设置从"启动项目"(当然这不起作用,因为它是一个DLL)更改为"启动外部程序".
这似乎有效; Outlook启动,显然附加了调试器.但是,没有遇到任何断点.我注意到当我进入"附加到进程"对话框时,它说Outlook只运行x86(我认为这是不正确的,因为我的manged代码在该地址空间中运行 - 对吗?),所以在Debug选项卡中我单击"设置"面板"启用非托管代码调试",现在我已经没有想法了.我也无法暂停这个过程,因为我收到一个错误,告诉我该进程没有运行我选择调试的代码类型.我知道我的Addin肯定是加载并执行的,因为我可以看到它正常工作.
作为一种解决方法,我一直在使用System.Diagnostics.Debugger.Launch(),这很烦人,但它的工作原理.有任何想法吗?
因此,事实证明 Outlook 不会在启动时加载 CLR(必须在必要时立即加载),这显然会混淆 VS 调试器并导致它仅调试本机代码。要强制它立即加载 CLR,请在同一文件夹中创建一个 OUTLOOK.EXE.config 文件:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/> <!-- or whatever -->
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是来自这篇博文。然后,即使 VS 开始附加,它也会调试 CLR 代码