程序已停⽌⼯作”问题解决⽅法,停⽌解决⽅法
“程序已停⽌⼯作”问题的解决⽅法,停⽌解决⽅法
问题
遇到⼀个程序打不开的错误,如图:
问题详细信息如下:
问题签名:
问题事件名称: CLR20r3
问题签名 01:
问题签名 02: 1.0.1.0
问题签名 03: 5510d590
问题签名 04: RDH-IDSS
问题签名 05: 1.0.1.0
问题签名 06: 5510d590
问题签名 07: 92
问题签名 08: 10
问题签名 09: System.BadImageFormatException
解决
1)百度⾥查了很多类似的错误,发现弹框总是⼀样,详细信息不尽相同。所以解决此问题的关键还是看详细信息。如上⾯的详细信息⾥的最后,就可以看到这个错误:“System.BadImageFormatException”。
2)在我的程序⾥,我加上了全局异常捕获,后来就没弹这个问题了(可能出错的地⽅不影响整体)。代码:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += Application_ThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
System.BadImageFormatException
在MSDN的Library中到System.BadImageFormatException,⾥⾯关于这个问题的原因和解决⽅法已经很清楚。
原因:低版本编译⼯具(如 或 )编译⾼版本Framework的程序。
⽅法:使编译⼯具和程序版本相对应。
原因:按加载托管程序集的⽅法加载⾮托管程序集。如:Assembly.LoadFile(@"System32\Kernel32.dll")
⽅法:使⽤DllImportAttribute的⽅法加载⾮托管程序集。
原因:DLL 或可执⾏⽂件作为 64 位程序集加载,但是它包含 32 位特性或资源。例如,它依靠 COM 互操作或调⽤ 32 位动态链接库中的⽅法。
记住我
⽅法:将项⽬的“平台⽬标”属性设置为 x86(⽽不是 x64 或 AnyCPU)并重新编译。
原因:低版本Framework程序集调⽤⾼版本程序集。
⽅法:确保引发该异常的程序集尝试加载⽤兼容版本的 .NET Framework 开发的程序集。
总结
解决打开程序时,提⽰“程序已停⽌⼯作”的问题⽅法是,在详细信息⾥到具体的错误,然后解决相关的问题。