如何使用异常代码修复.NET启动时崩溃的.NET应用程序:0xE0434352?

Joh*_*hnB 76 .net c# visual-studio-2010 winforms

我在Visual Studio 2010中构建了一个.NET Windows Forms应用程序.我还通过Visual Studio 2010构建了一个相应的安装/安装包.它构建为一个32位(x86)应用程序.(我们使用仅限32位的第三方Windows窗体控件).

我能够运行安装程序包并成功部署到其他Windows 7 64位环境和32位Windows XP盒.安装的应用程序运行正常.

但是,当我尝试运行Windows Server 2008 R2 - 64位时,应用程序在启动时崩溃.它通过安装程序成功安装,没有任何错误.

加载应用程序时似乎崩溃.我将一个消息框作为应用程序中的第一行,以查看它是否超过了加载.消息框未显示,因此我假设它在应用程序的加载/初始化期间发生.

到目前为止,我还没有找到太多进展.从细节我看到以下内容:

Exception Code: E0434352
Run Code Online (Sandbox Code Playgroud)

我已经四处搜寻/谷歌搜索是否有任何明显的东西,但我没有看到任何东西.我在CLR中看到了一些可能的堆栈溢出的引用.

Windows窗体应用程序使用以下引用构建:

  • DevExpress的
  • Infragistics Winforms控件
  • ORACLE DataAccess DLL
  • 的RabbitMQ

有什么问题?如何解决这个问题呢?如何调试以获取更多有用信息?

Ter*_*ver 70

如果从事件查看器中收到该错误,则应该从源".NET运行时"中看到另一个错误事件(至少一个).查看该错误消息,因为它将包含Exception信息.

  • 这真的对我有所帮助,谢谢,因此我发现我遗漏了一个依赖项(FileNotFound异常) (4认同)

Lar*_*ens 66

0xE0434352是所有.NET异常的异常代码,因此不会告诉您太多.你是怎么得到这个异常代码的?事件日志?

最好的办法是使用调试器来获取更多信息.如果Visual Studio调试器无法帮助您,则可能需要使用SOS检出WinDbg.请参阅此处此处以获取介绍.让它打破异常,看看你是否可以获得有关原因的更多信息.

如果您怀疑加载程序集时出现问题,可能需要查看Fusion日志.

  • 在尝试调试器之前,请先检查Tergiver的答案 (2认同)

Joh*_*ohn 6

我不确定这是否会帮助任何人,但由于这是我的问题,我认为值得一提:

我收到此错误,结果证明是构建 EXE 的平台有问题。我们为 x86 构建了它,它需要是 x64,因为项目中引用了 Oracle。当我们做出改变时,问题就迎刃而解了。所以,看看你是否有任何类似的冲突。