程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> “程序已停止工作”問題的解決方法,停止解決方法

“程序已停止工作”問題的解決方法,停止解決方法

編輯:C#入門知識

“程序已停止工作”問題的解決方法,停止解決方法


問題

遇到一個程序打不開的錯誤,如圖:

問題詳細信息如下:

問題簽名:
問題事件名稱: 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(@"System32\Kernel32.dll")

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

  • 原因:DLL 或可執行文件作為 64 位程序集加載,但是它包含 32 位特性或資源。 例如,它依靠 COM 互操作或調用 32 位動態鏈接庫中的方法。

    方法:將項目的“平台目標”屬性設置為 x86(而不是 x64 或 AnyCPU)並重新編譯。

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

    方法:確保引發該異常的程序集嘗試加載用兼容版本的 .NET Framework 開發的程序集。

總結

解決打開程序時,提示“程序已停止工作”的問題方法是,在詳細信息裡找到具體的錯誤,然後解決相關的問題。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved