在 Windows 8 中测试现有应用程序时,我遇到了一个非常奇怪的崩溃。主应用程序是用 Delphi XE (Win32) 编写的,它使用 COM 互操作对 .Net 程序集进行了一些调用。当前使用的 .Net 版本是 3.5。
当应用程序在全新安装的 Windows 8 上执行时,它会在突然开始正常运行之前崩溃多达 10 次。一旦它开始正常运行,它将继续这样做。不显示错误日志或错误消息。应用程序只是挂起或停止工作。
我在 4 种不同的 Win8 安装(物理和虚拟)上得到了相同的结果。
Double.TryParse
在尝试解析非数字值时,我已经能够进行一些远程调试并设法将错误追踪到 .Net 方法。
Double.Parse
在 Try/Catch 块中也不起作用。
主要程序集是用 Delphi Prism 编写的,但我已经能够使用 VS2010 用 C# 编写的测试程序集重现错误。
.Net 4 似乎工作正常,但由于缺少对 Oracle 的支持,我们现在无法升级。
该程序在以前版本的 Windows 以及 Windows Server 2012 上运行良好。
任何提示或建议将不胜感激。
另外: 当从另一个用 C#/托管代码编写的测试应用程序调用测试程序集时,我忘了提及该测试程序集可以正常工作。只有 Delphi (Win32)、.Net 3.5、COM InterOp 和 Windows 8 的组合会导致崩溃。
我也很困惑为什么应用程序在崩溃多达 10 次后突然开始工作。