`使用托管兼容模式`或`启用本机代码调试'?

And*_*man 9 debugging visual-studio-2015

我为Autodesk Revit写了.net-plugins.Revit是非托管应用程序.因此,为了成功调试,我将设置ONUse managed compatibility mode选项或Enable native code debugging选项(或两者).否则无法启动调试.

第一个适用于所有项目.其中第二个单独用于每个项目.

在此输入图像描述

这些选项有什么区别?我不明白他们做了什么.在我的情况下使用哪个选项更正确?

Han*_*ant 11

您不必启用非托管调试来调试插件.当主机应用程序加载加载项时,代码中的断点将激活(从空心变为实心).如果您不确定是否发生了这种情况,请查看Debug> Windows> Modules窗口.

启用非托管调试不会对调试会话产生很大影响,但启动时可能需要相当长的时间,您可能需要暂时禁用符号服务器以避免对其感到恼火.

"工具">"选项"设置的名称相当差.微软一直在研究新的调试引擎,但被迫(或选择)删除了一些功能."使用托管兼容模式"强制加载旧版本的托管调试器,即VS2010中使用的版本.调试C++/CLI代码时需要它.它在VS2015中也很有用,它的托管调试引擎非常多.您将错过一些新的调试功能,如返回值检查和64位编辑+继续.您不需要它来调试您的加载项.

"使用本机兼容模式"的故事大致相同,它支持较旧版本的非托管调试引擎,即VS2012中的版本.你会错过新的Natvis可视化工具.除了让旧的可视化工作器工作之外,我还没有找到令人信服的理由需要它.

  • “使用托管兼容模式”在 VS 2022 上不再可用,我该怎么办? (4认同)