【问题标题】:Visual Studio 2015 - How to stop EntryPointNotFoundException when starting to debug an app?Visual Studio 2015 - 开始调试应用程序时如何停止 EntryPointNotFoundException?
【发布时间】: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 异常以及异常的屏幕截图:

CLR 异常被禁用

已启用 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


【解决方案1】:

从你的截图来看,我猜你已经启用了调试器选项“当异常跨越 AppDomains 或托管/本机边界时中断”。转到 Debugger->Options 并取消选中该选项(从顶部开始第三个)

【讨论】:

  • 就是这样!我已经用一个直观地显示此设置的屏幕截图更新了答案。谢谢@John。
  • 我很抱歉@John...我以为我已经接受了这个答案,但昨天意识到我没有。感谢提交。
【解决方案2】:

一位同事刚刚遇到了这个问题,他必须选中“工具”->“选项”->“调试”->“常规”中的“仅启用我的代码”框,同时清除“异常跨 AppDomains 或托管时中断”的检查/本地边界'。

【讨论】:

  • 嗯我不知道为什么会抛出这个或者这意味着什么,但它确实成功了 +1
【解决方案3】:

查看此屏幕截图,我已启用调试器选项“跨 AppDomains 或托管/本机边界时中断”。转到 Debugger->Options 并取消选中该选项。它工作正常。enter image description here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多