今天寫了一個測試的控制台應用程序,需要引用一個第三方dll,結果程序運行到要創建第三方dll中的一個類的實例的時候,總是報異常,“System.BadImageFormatException”類型的未經處理的異常在 DataTest.exe 中發生 。其他信息:“未能加載文件或程序集xxx或它的某一個依賴項。試圖加載格式不正確的程序。" 如下圖:
一般來說,這種異常是由於目標程序的目標平台與其某一依賴項的目標編譯平台不一致導致的,把所有的項目都修改到同一目標平台下(X86、X64或AnyCPU,vs2013默認是AnyCPU)進行編譯,一般即可解決問題。
我遇到的這個問題,可能是因為第三方的dll的編譯平台是x86的,在X64和AnyCPU下均運行不成功,將目標平台改成x86,問題就解決了。
具體操作方法:
在引用第三方dll的項目名稱上點右鍵選擇屬性,然后在"設置屬性"的窗口中找到“生成”,將其中的“目標平台”改成相應的平台后保存就可以了。
另,如果是Web項目,將程序部署到服務器上之后,還需要將應用程序池中,“啟用32位應用程序”項設置為true。如下圖:
————————————————
版權聲明:本文為CSDN博主「趙修傑」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shouhou_Bingo/article/details/53336804