20

我們的一個開發團隊成員得到了一個錯誤BadImageFormatException在使用Oracle客戶端64位和Visual Studio 2010時!

嘗試加載Oracle客戶端庫扔BadImageFormatException

看來

在64位模式下運行時,會出現此問題安裝了32位Oracle客戶端組件。

但它是我是誰配置的系統 - 這裏的規格:

  • 的Windows 7 64位
  • Visual Studio 2010中的高級
  • Oracle客戶端11克R2 64位安裝爲運行

有什麼想法?

+0

你有沒有升級到最新克倫特ODAC? http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html – Sathya 2011-05-03 16:07:51

+0

它與Visual Studio是32Bit有什麼關係? – 2011-05-05 16:14:34

+0

也許 - 我不熟悉Visual Studio,雖然 – Sathya 2011-05-05 16:30:49

回答

9

最近在64Bit操作系統上運行Visual Studio時,我已經看過幾次了。一個簡單的工作就是在64位開發機器上安裝32位客戶端。

問候,皮特

+0

,我們到底做了什麼! – 2011-05-18 06:37:24

+0

也解決了我。謝謝 – 2012-06-27 15:34:39

+3

是的,但您也需要確保您的應用程序使用的是32位應用程序池。打開IIS管理器並單擊池上的「高級設置」,然後「啓用32位應用程序= True」。 https://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx – styfle 2013-07-02 16:20:40

19

我即將添加第二個答案抱歉,但如果你有64位,而安裝在同一臺機器32個客戶端可能也遇到這樣的問題。

兩個客戶端安裝

C:\oracle\product\11.2.0\client32Bit 
C:\oracle\product\11.2.0\client64Bit 

控制PATH環境變量。哪個Oracle客戶端是第一個,它在另一個之前加載。

echo %PATH% 
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX 

由於我的64位Oracle客戶端是第一個PATH,VS.NET嘗試將它用於Oracle連接並引發錯誤圖像異常。

set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH% 
    REM Visual Studio 2008 
    "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" 
    REM Visual Studio 2010 
    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" 

之後您可以連接oracle。當然,你可以先把32Bit客戶端放在路徑上,但我更願意把32位之前的64位客戶端放在其他應用程序中。

+0

這是爲我解決了這個問題。謝謝你的幫助。 – 2012-11-27 16:37:52

0

對於這個問題,你必須只按照以下步驟快速簡單的解決方案:

  1. install.bat文件安裝ODACv11.2021Xcopy_x64,通過運行,然後選中「C:\ ORACLE」爲生成的路徑。
  2. 將oracle 32bit中的網絡配置文件夾[包含具有tnsnames.ora文件的admin文件夾]複製到「c:\ oracle」。
  3. 向PATH環境變量添加了「c:\ oracle」路徑。

享受

最好的問候, 工程。 Nawaf H. Bin Taleb。

3

我改變了32位啓用支持錯誤在我的應用程序池在IIS7中。這對我有效。我發現它很容易。 乾杯:)

+4

我將我的地雷改爲TRUE,它工作哈哈。 – styfle 2013-07-02 16:21:03

0

我得到了同樣的異常,我發現它發生在我升級到2.0以上的MVC版本時,在我的情況MVC 4.0。

在MVC 2.0中創建一個新項目解決了這個問題。

0

如果您想使用64位看到我的答案在這裏:
64 bit Oracle DataAccess configuration

如果你的內容與32位,只需要安裝Oracle數據訪問組件的32位版本。由於Visual Studio的開發服務器是32位,所以不會有任何問題。

9

我有同樣的錯誤升級到Windows 7後,我通過改變目標平臺,以86中的屬性頁的Build選項卡在Visual Studio

+0

工作完美:) – 2014-09-05 08:19:15

+1

就我而言,情況正好相反:將我的目標平臺更改爲x64可以解決問題。 – 2014-09-23 15:10:24

0

簡單的解決方案解決了它:對我的作品。嘗試這個。

我花了將近4個小時才找到BadImageFormatException問題的解決方案。

場景: VS 2012,我試圖添加實體模型到Oracle數據庫的第一次。我知道有兩個步驟添加模型爲Oracle數據庫:

  1. 連接Oracle數據庫使用服務器探索
  2. 添加模型使用現有的ConnectionString(其中連接字符串將被創建並可以同時加入模型中) (在步驟1中創建)。

但我在步驟1本身遇到BadImageFormatException警告,我找到了解決方案。 分辨率:

  1. 按照給出的鏈接進行操作,完成Oracle客戶端安裝http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. 一旦安裝成功完成,那麼簡單的步驟,即。將模型添加到項目中。這裏使用dropdownlist中的現有連接字符串並提供userid/pwd。

,那麼你就可以使用模型:)

5

同樣的問題,你可能還面臨着在Visual Studio 2013年和64位Oracle客戶端(11個12版本)。我的解決方案是:

a)桌面項目。項目屬性>生成>禁用「首選32位」複選框。

b)ASP.NET項目或網站。主菜單>工具>選項>項目和解決方案> Web項目>啓用'使用IIS網站和項目的64位版本的IIS Express'複選框。

+0

嗨..謝謝你..答案(b)爲我工作..我討厭安裝與64位的32位oracle ...這是爲Visual Studio 2015 – Karthick 2017-03-13 14:39:07

相關問題