2010-03-10 169 views
2

我試圖從我在Windows 7 64位上編寫的程序訪問Oracle數據庫。每當它初始化客戶端時,我都會得到一個BadImageFormatException抱怨說我試圖在64位環境中使用32位客戶端。我試圖以任何方式編譯程序(任何CPU,32,64位),但它沒有解決問題。任何幫助?Windows 7上的System.Data.OracleClient 64位

+0

您是否參考了OCI的64位版本? – 2010-03-10 10:00:26

回答

1

我猜測錯誤信息是正確的。你有一個32位的Oracle DLL,你可以在64進程中使用。 Oracle DLL可能會與本​​機代碼做一些互操作,這可能需要它是特定於處理器的。

有幾種方法可以解決這個問題。

選項1:獲取64 bit Oracle DLLs.

選項2:確保你的過程是32位。 標記爲AnyCPU的.NET EXE文件將在64位操作系統上啓動64位進程。但是,如果你將你的EXE文件標記爲x86,那麼它應該可以工作。對於Web應用程序,您必須在IIS中的某處設置一個32位標誌。

1

您需要將項目配置爲定位.NET 4 Framework,請轉至Project-DesignerTarget Framework

然後,你需要刪除舊Oracle dll,並使用包含在.NET框架4的Oracle dll64位版本