C# Visual Studio调试器等待托管代码
我正在为本机\非托管应用程序编写C#插件(DLL库)。问题是,当我启动调试器时,应用程序运行并几乎立即退出(可能是因为我的DLL不是在应用程序启动时加载的,而是在以后加载的)。选中“启用本机代码调试”会有所帮助,但会显著降低应用程序的性能,这是不可取的,因为我只想调试我的C#代码。有没有办法在不启用该选项的情况下调试DLL?我正在使用Visual Studio 2015社区。我已经找到了答案。:)C# Visual Studio调试器等待托管代码,c#,.net,visual-studio,debugging,visual-studio-2015,C#,.net,Visual Studio,Debugging,Visual Studio 2015,我正在为本机\非托管应用程序编写C#插件(DLL库)。问题是,当我启动调试器时,应用程序运行并几乎立即退出(可能是因为我的DLL不是在应用程序启动时加载的,而是在以后加载的)。选中“启用本机代码调试”会有所帮助,但会显著降低应用程序的性能,这是不可取的,因为我只想调试我的C#代码。有没有办法在不启用该选项的情况下调试DLL?我正在使用Visual Studio 2015社区。我已经找到了答案。:) 在选项->调试->常规中启用“使用托管兼容性模式”。两个选项,不确定Community Editi
在选项->调试->常规中启用“使用托管兼容性模式”。两个选项,不确定Community Edition是否同时支持这两个选项。。。首先,设置一个单元测试项目来测试功能。。。第二种选择,编写一个托管测试线束程序,该程序使用您的库并执行功能。您可以从任何一个进行调试。您真正需要调试的是调用库的托管代码中的某个东西。WinDbg with
sxe
使这成为一件轻而易举的事,因为您与VS无关。我在类似情况下使用的另一个选项是在库中临时添加行Debugger.Launch()
。当点击此行时,应用程序将暂停并触发一个提示,允许您附加调试器。显然,您不希望在生产版本中使用此选项。@pquest更改我的代码不会产生任何影响,因为它根本不会被命中。