我正在使用.NET連接到Oracle 10g數據庫的Excel Addin(VSTO)。如何在使用System.Data.OracleClient時指定要使用的Oracle主目錄
我在Vista x64上運行,發現我需要安裝在我的機器上的x86和x64 Oracle客戶端,以便32位進程(如PL/SQL Developer)和64位進程(如示例爲「任何CPU」編譯的.NET控制檯應用程序)可以連接到Oracle。
這一切都工作正常。我的問題是Excel是一個託管.NET DLL的32位應用程序,根據ProcessMonitor,excel進程在「C:\ oracle \ product \ 10.2.0 \ client_1 \ BIN \ oci」中加載「OraClient10g_home1」Oracle客戶端。 DLL「(這恰好是64位客戶端),當我的.NET代碼嘗試使用它時,會給我一個BadImageFormatException。我想要告訴.NET加載32位「OraClient10g_home2」Oracle客戶端(即「C:\ oracle \ product \ 10.2.0 \ client_2 \ BIN \ oci.dll」)。我如何告訴.NET使用client_2而不是client_1。
您也可以在app.config中更改它。 http://download.oracle.com/docs/html/E10927_01/InstallODP.htm – Christian13467
這就是我最後做的 – d4nt
你說你使用Microsoft提供的Oracle(System.Data.OracleClient)。我非常驚訝(至少可以這麼說),設置這個特定於Oracle提供程序(Oracle.DataAccess)的參數應該可以解決您的問題。 – Mac