【问题标题】:Invalid Program Exception was Handled处理了无效的程序异常
【发布时间】:2011-05-20 03:40:57
【问题描述】:

当我使用 F5 调试我的应用程序时,我收到此错误并且公共语言运行时检测到一个无效程序。如果我使用 CNTRL+F5 它工作正常,为什么会发生任何人都可以告诉。

实际上,只有当我添加 DeployLX 许可(XHEO 的许可软件)时,这个才会出现。

【问题讨论】:

  • 请把你的代码贴出来,否则就很难说了……
  • 没有什么可以发布我的代码我只是创建一个空白解决方案
  • 您是否在 x64 Windows 上运行?

标签: .net visual-studio winforms exception


【解决方案1】:

您遇到的行为无疑是您的应用程序在附加调试器的情况下运行的结果。当您使用 Ctrl+F5 启动应用程序时kbd>,您是在告诉 Visual Studio “开始而不调试”,而不是按 F5,它告诉 Visual Studio “开始调试”。这两个命令之间的区别只是前者将调试器附加到您的代码进程。请注意,这与 Debug 构建和 Release 构建之间的区别相同!任何一种构建类型都可以在附加或不附加调试器的情况下运行。

在没有附加调试器的情况下运行您的应用程序意味着几件不同的事情:

  • 不会命中断点
  • 未加载调试符号(您的 .PDB 文件),因此您无法单步执行代码
  • 涉及System.Diagnostics.Debug 类的语句将不会被执行
  • 在 C++ 中,变量不会被初始化为其默认值(而是保持未初始化状态)

在你的情况下,我猜你看到的异常被捕获并处理在堆栈更高的地方,从它被抛出的地方(大概是由 DeployLX 许可的东西提供的一些代码,虽然我不'对此一无所知并且从未使用过它),因此除非您连接了调试器,否则不会显示。附加调试器后,会记录并显示异常以供参考,无论是否处理得当。

您没有准确说明在哪里显示此错误以及您是如何“获取”它的。但是,如果您想自定义在调试器附加到运行代码的进程时处理异常的方式,请打开“调试”菜单并单击“异常”选项。从那里,您可以选择中断所有异常,即使是那些已处理的异常,如果您想查看是什么代码引发了异常。

【讨论】:

  • 我有时会收到异常,有时我发现此时异常正在引发 _license = SecureLicenseManager.Validate(this, null, info)
  • @Dorababu:在我看来,您的许可证无效?就像我说的,老实说,我什至从未听说过 DeployLX 许可,所以也许其他人可以在这里帮助我。我的最佳建议是尝试修复导致您的许可证验证失败的任何问题,或者联系为您提供许可代码的公司,因为这显然是问题所在。
  • 我联系了他们,他说尝试使用调试 cpu 来部署它,但问题仍然存在
【解决方案2】:

根据这个question清洁解决方案可能是一个不错的选择。

【讨论】:

  • 在我必须重新创建应用程序或者我应该重新安装 Visual Studio 的意义上清理解决方案
  • 在 Visual Studio 中,如果您在解决方案资源管理器中右键单击解决方案文件,则会出现“清理解决方案”选项。
  • 我试过了,但仍然没有意义
  • 解决此问题的唯一方法是联系许可供应商。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多