2015-01-07 113 views
6

首先,我的機器上同時具有11和12個Oracle客戶端。但是當我嘗試使用11g版本的oracle.dataacess.dll。Oracle.DataAccess在卸載後仍然嘗試訪問oraops12.dll

我已經刪除了12c註冊表,並停止服務和machince.config相關。 但程序被拋出「無法加載oraops12.dll ..」。

oracle.dataacess找到dll配置的哪個路徑? 它爲什麼仍然嘗試加載oraops12而不是oraops11。

預先感謝您。

+0

您可能仍需要ODP.NET的12C版本在GAC隨着它的政策的DLL 。政策dll可能會導致ODP.NET 11嘗試加載ODP.NET 12. –

+0

如何刪除該政策的dll? – LLF

+1

使用Visual Studio命令提示符,發出gacutil/u http://msdn.microsoft.com/en-us/library/ex0ss12c%28v=vs.110%29.aspx –

回答

6

。在你的GAC策略文件正在使用「bindingRedirect」標籤

Policy.2.112.Oracle.DataAccess.config

做搜索文件(我使用代理洗劫),然後編輯它。

文件看起來像這樣

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/> 
      <bindingRedirect oldVersion="2.112.2.0-2.112.9999.9999" newVersion="2.121.1.0"/> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

出於某種原因的內容,如果你安裝Oracle 12,然後嘗試卸載它(即使使用的Gacutil.exe/U),綁定重定向留在。

在我的機器,它是在C:\ WINDOWS \裝配\ GAC_32 \ Policy.2.112.Oracle.DataAccess \ 2.121.2.0__89b483f429c47342 \ Policy.2.112.Oracle.DataAccess.config

它是不可訪問通過資源管理器,使用代理ransack來追蹤它,然後右鍵單擊它並運行在編輯器中輸入。

1

我剛剛遇到了這個問題。確保並刪除所有在c:\ windows \ assembly和c:\ windows \ Microsoft.net \ assembly中都以2.12開頭的策略文件夾和oracle.dataaccess文件夾。 2.11x表示oracle 11.x,2.12x表示Oracle 12.x.

相關問題