Windows 8で既存のアプリケーションをテストすると、非常に奇妙なクラッシュが発生します。メインアプリケーションはDelphi XE(Win32)で記述されており、COM相互運用機能を使用して.Netアセンブリを呼び出します。現在使用されている.Netバージョンは3.5です。
アプリケーションがWindows8の新規インストールで実行されると、突然正常に実行を開始する前に、最大10回クラッシュします。OKを開始すると、引き続き実行されます。エラーログやエラーメッセージは表示されません。アプリケーションがハングするか、動作を停止します。
物理と仮想の両方で、4つの異なるWin8インストールで同じ結果が得られました。
Double.TryParse
数値以外の値を解析しようとしたときに、リモートデバッグを実行し、エラーを.Netメソッドまで追跡することができました。
Double.Parse
Try/Catchブロック内でも機能しません。
メインアセンブリはDelphiPrismで記述されていますが、VS2010を使用してC#で記述されたテストアセンブリでエラーを再現することができました。
.Net 4は正常に機能しているようですが、Oracleのサポートがないため、現在アップグレードできません。
このプログラムは、以前のバージョンのWindowsでも、WindowsServer2012でも問題なく動作します。
ヒントや提案をいただければ幸いです。
追加: C#/マネージコードで記述された別のテストアプリケーションから呼び出されたときに、テストアセンブリが正しく機能することを忘れました。クラッシュを引き起こすのは、Delphi(Win32)、. Net 3.5、COM InterOp、およびWindows8の組み合わせだけです。
また、最大10回クラッシュした後、アプリケーションが突然動作し始める理由にも非常に困惑しています。