1. 程式人生 > >異常處理--“System.BadImageFormatException”型別的未經處理的異常在 DataTest.exe 中發生

異常處理--“System.BadImageFormatException”型別的未經處理的異常在 DataTest.exe 中發生

今天寫了一個測試的控制檯應用程式,需要引用一個第三方dll,結果程式執行到要建立第三方dll中的一個類的例項的時候,總是報異常,“System.BadImageFormatException”型別的未經處理的異常在 DataTest.exe 中發生 。其他資訊:“未能載入檔案或程式集xxx或它的某一個依賴項。試圖載入格式不正確的程式。" 如下圖:


一般來說,這種異常是由於目標程式的目標平臺與其某一依賴項的目標編譯平臺不一致導致的,把所有的專案都修改到同一目標平臺下(X86、X64或AnyCPU,vs2013預設是AnyCPU)進行編譯,一般即可解決問題。

我遇到的這個問題,可能是因為第三方的dll的編譯平臺是x86的,在X64和AnyCPU下均執行不成功,將目標平臺改成x86,問題就解決了。

具體操作方法:

在引用第三方dll的專案名稱上點右鍵選擇屬性,然後在"設定屬性"的視窗中找到“生成”,將其中的“目標平臺”改成相應的平臺後儲存就可以了。


另,如果是Web專案,將程式部署到伺服器上之後,還需要將應用程式池中,“啟用32位應用程式”項設定為true。如下圖: