【发布时间】:2015-09-15 13:49:26
【问题描述】:
我在 Windows 7 笔记本电脑上运行 Visual Studio 2015,每次在 IDE 的调试器中启动应用程序时,都会出现以下异常:
无法在 DLL 'advapi32.dll' 中找到名为 'EventSetInformation' 的入口点。
我在coreclr repository on github 中找到了对此的引用,表明这是在 Windows 8 中添加的 API。我的情况类似于 github 问题,我可以单击“继续”忽略异常并运行我的应用程序正好。然而,这真的很烦人,因为我不能不等待这个异常被抛出就开始调试应用程序,所以我可以手动继续过去。
我的问题是是否有人知道我是否可以防止此异常在 IDE 中中断?这种情况目前只是一种麻烦,但我很想摆脱它。
作为参考,在这种情况下,更改 Visual Studio 中的异常设置似乎不会改变行为。以下是启用和禁用 CLR 异常以及异常的屏幕截图:
解决方案
这是由一个通用调试器选项引起的,该选项似乎覆盖了任何特定于异常的设置。正如@John 在下面的回答中所指出的,您可以禁用一个调试器选项来停止此行为。当这个选项被选中我会得到描述的断点,但取消选中它会停止它并提供我正在寻找的东西:
【问题讨论】:
-
只是不要在抛出此异常时要求调试器停止。调试 > Windows > 例外设置。点击“Common Language Runtime Exceptions”复选框,直到它变成一个实心矩形。
-
@HansPassant 感谢您的建议,但在这种情况下,更改 CLR 异常是否应该中断并不会改变 VS 的行为方式。我将用屏幕截图更新问题以证明这一点。
-
能不能把目标框架改成4.5.2而不是4.6?
-
@Thomas 这个应用程序的目标框架实际上是 4.5.2。我有其他针对 4.5 的应用程序也表现出这种行为。我不希望你去探索代码,但作为参考,上面的例子是从这个小项目生成的 - github.com/sstorie/SerilogDemo.Wpf
标签: exception visual-studio-2015 visual-studio-debugging