我已经在Visual Studio 2010中构建了一个.NET Windows Forms应用程序。我还通过Visual Studio 2010构建了一个相应的安装程序/安装包。它是作为32位(x86)应用程序构建的。(我们使用仅32位的第三方Windows窗体控件)。
我能够运行安装程序包并将其成功部署到其他Windows 7 64位环境和32位Windows XP盒中。已安装的应用程序可以在这些程序上正常运行。
但是,当我尝试运行64位Windows Server 2008 R2时,应用程序在启动时崩溃。它通过安装程序成功安装,没有任何错误。
加载应用程序时,它似乎崩溃了。我在应用程序的第一行放置了一个消息框,以查看是否超过了加载时间。该消息框未显示,因此我假定它是在加载/初始化应用程序期间发生的。
到目前为止,我还没有发现太多事情要做。从详细信息中,我看到以下内容:
Exception Code: E0434352
我到处钓鱼/谷歌搜索是否有明显的东西,但什么也没看见。我看到了一些有关CLR中可能的堆栈溢出的引用。
Windows窗体应用程序使用以下参考文件构建:
有什么问题 我该如何解决呢?如何调试以获得更多有用的信息?
0xE0434352是所有.NET异常的异常代码,因此不会太多告诉您。您是如何获得此异常代码的?事件日志?
最好的选择是使用调试器来获取更多信息。如果Visual Studio调试器无法为您提供帮助,则可能需要使用SOS签出WinDbg。请参阅此处和此处进行介绍。让它打破异常,看看是否可以获得有关原因的更多信息。
如果您怀疑在加载程序集时出现问题,则可能需要检出Fusion Log。