应用程序在非开发系统上崩溃

Application crashing on non-development system

本文关键字:崩溃 系统 开发 应用程序      更新时间:2023-10-16

我在另一个系统上遇到了以下错误:

Faulting application name: EyeScanner.exe, version: 1.0.0.0, time stamp: 0x5049fcd9
Faulting module name: MSVCR100.dll, version: 10.0.30319.1, time stamp: 0x4ba220dc
Exception code: 0xc0000417
Fault offset: 0x000000000007038c
Faulting process id: 0x928
Faulting application start time: 0x01cd8d2ac9ca4d5e
Faulting application path: C:EyeScanner-ExeEyeScanner.exe
Faulting module path: C:Windowssystem32MSVCR100.dll
Report Id: 0fbfc252-f91e-11e1-85b1-5442495a44cf

同样的代码在我的开发系统上运行得非常好,在另一个系统上也应该与失败的系统版本相同。

当我想调试这个时,我尝试用Windows SDK安装WinDbg,这需要我安装.NET 4.5 Framework。安装后,即使在出现故障的系统上,一切都很好。

现在我想知道如何从上面的消息中发现这与.NET Framework有关,特别是因为错误代码0xC0000417表明C-Runtime(我有一个DLL,它负责图像分析的所有工作)是用错误的参数调用的。

为什么它会犯那个错误?(.NET 4.0已经提前安装,所以只有4.5的更新才修复了它)。

我假设您的开发机器上有.Net 4.5。.Net 4.5中发生了很多变化,尤其是JIT代码以及它们处理p/Invoke的积极性。到目前为止,我已经遇到了不止一个问题。我从来没有听说过有一个应用程序在.Net 4.5中工作,而不是在4.0中工作,但我不会说这是不可能的。

无论如何,我会尝试卸载.Net 4.5,并在机器上使用适用于.Net 4.0的WinDbg版本。这可能有助于诊断问题。