• “程序已停止工作”问题的解决方法,停止解决方法


    “程序已停止工作”问题的解决方法,停止解决方法

     

    问题

    遇到一个程序打不开的错误,如图:

    问题详细信息如下:

    问题签名:
    问题事件名称: CLR20r3
    问题签名 01: rdh-idss.exe
    问题签名 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,里面关于这个问题的原因和解决方法已经很清楚。

    • 原因:低版本编译工具(如 ILDasm.exe 或 installutil.exe)编译高版本Framework的程序。

      方法:使编译工具和程序版本相对应。

    • 原因:按加载托管程序集的方法加载非托管程序集。如:Assembly.LoadFile(@"System32Kernel32.dll")

      方法:使用DllImportAttribute的方法加载非托管程序集。

    • 原因:DLL 或可执行文件作为 64 位程序集加载,但是它包含 32 位特性或资源。 例如,它依靠 COM 互操作或调用 32 位动态链接库中的方法。

      方法:将项目的“平台目标”属性设置为 x86(而不是 x64 或 AnyCPU)并重新编译。

    • 原因:低版本Framework程序集调用高版本程序集。

      方法:确保引发该异常的程序集尝试加载用兼容版本的 .NET Framework 开发的程序集。

    总结

    解决打开程序时,提示“程序已停止工作”的问题方法是,在详细信息里找到具体的错误,然后解决相关的问题。

  • 相关阅读:
    UDP最大传输字节
    [bzoj3994] [SDOI2015]约数个数和
    [bzoj3529] [Sdoi2014]数表
    [bzoj3309] DZY Loves Math
    [bzoj2693] jzptab
    [bzoj4407] 于神之怒加强版
    [bzoj3688] 折线统计
    [bzoj2301] [HAOI2011]Problem b
    [bzoj2820] YY的GCD
    [bzoj4559] [JLoi2016]成绩比较
  • 原文地址:https://www.cnblogs.com/net-sky/p/9231605.html
Copyright © 2020-2023  润新知