Dot-Net
即使平台相同,“試圖載入格式不正確的程序”
我正在從 64 位系統上的 32 位非託管 DLL 呼叫函式。我得到的是:
BadImageFormatException:試圖載入格式不正確的程序。(來自 HRESULT 的異常:0x8007000B)
起初,我將我的項目設置為 Any CPU 平台,因此我將它們都更改為 x86,但仍然出現此錯誤。這真的是我所知道的唯一解決方法。
DLL 沒有損壞或任何東西,因為我可以將它們與其他程序一起使用(我沒有原始碼)。我想也許它沒有找到依賴關係,但我檢查了一下,它們都在那裡。
DllNotFoundException另外,在那種情況下它不會拋出一個嗎?我還可以做些什麼?在您說“改用 64 位非託管 DLL”之前,讓我指出沒有。;)
不知何故,配置管理器中的建構複選框已取消選中我的執行檔,因此它仍在使用舊的 Any CPU 建構執行。修復該問題後,Visual Studio 抱怨它無法調試程序集,但通過重新啟動已解決。
如果您嘗試在 IIS 7(和/或 64 位作業系統機器)上執行 32 位應用程序,您將收到相同的錯誤。因此,從 IIS 7 中,右鍵點擊應用程序的應用程序池並轉到“高級設置”並將“啟用 32 位應用程序”更改為“真”。
重新啟動您的網站,它應該可以工作。
