未能加載文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"


小弟此處只是記錄一下參考的文章,因為我是用的兩種方案結合的,沒有別的意思

詳細出處參考:http://blog.csdn.net/linghao00/article/details/8058730

                以及http://blog.csdn.net/lqh4188/article/details/46828409

第一篇文章的內容:

一般人,不包括全部平時在開發中使用的都是32位的PC機,所以安裝的也是Oracle32位的客戶端。但是一般服務器都是64位的,安裝的也是64位的Oracle客戶端,如果要部署使用Oracle.DataAccess連接Oracle的應用程序時,可能會遇到版本上的問題。那具體來說表現在以下兩個方面:
主要版本問題有兩種,一種是32位版和64位版的問題,如果我們開發出來的應用是32位的,那么就必須使用32位的客戶端,如果是64位的應用程序當然對應64位的客戶端。這里需要注意:在64位的環境中使用VS開發Web程序,其運行的Web服務“WebDev.WebServer.exe”是32位的,所以如果要調試64位的Oracle連接程序,最好是部署到iis中,使用IIS來連接Oracle數據庫。
另一個版本問題是Oracle.DataAccess的版本號問題,我的本機就是32位的XP,安裝了Oracle11gR2客戶端后,在安裝目錄下的ODP.NET\bin\2.x目錄中可以找到Oracle.DataAccess.dll文件,可以看到其版本號是:2.112.1.2。所以我開發出來的程序,引用的也是這個版本的庫。

但是在64位下的Oracle.DataAccess.dll卻不一樣,安裝后的版本是2.112.1.0,如圖是Windows2008X64上的Oracle.DataAccess.dll。

現在把開發環境的程序發布部署到服務器上,就會拋出異常
未能加載文件或程序集“Oracle.DataAccess, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一個依賴項。
或者是
Could not load file or assembly 'Oracle.DataAccess, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format之類的話。
總之就是找不到對應的程序集。顯然,這里系統找的是2.112.1.2版本的Oracle.DataAccess,而服務器上只有2.112.1.0版本的,所以才報錯,解決辦法就是在web.config中修改,在configSections節點結束之后增加如下內容:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess"
publicKeyToken= "89B483F429C47342"
culture= "neutral" />
<bindingRedirect
oldVersion= "2.112.1.2"
newVersion= "2.112.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
這樣就可以讓IIS調用2.112.1.0的Oracle.DataAccess了。添加這個配置后便可正常運行。

 

第二篇文章的內容:

若本機的oracle版本是32位系統,則在調用Oracle數據的時間報以下錯誤:

【未能加載文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一個依賴項。試圖加載格式不正確的程序】

主要原因是因為,服務器與本機的Oracle的版本不同引起的。

解決方案:

1.用32位的Oracle.DataAccess,替換項目對此dll的引用

2.修改項目生成目標,選擇【生成】【目標平台】為X86


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 關於未能加載文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一個依賴項。試圖加載格式不正確的程序的解決方案 vs2017 x64 ibatis.net 平台調用 Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 x64 C# 所生成項目的處理器架構“MSIL”與引用“Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86”的處理器架構“x86”不匹配。這種不匹配可能會導致運行時失敗。 未能加載文件或程序集“ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73”或它的某一個依賴項 未能加載文件或程序集“System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken 未能加載文件或程序集“Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 未能加載文件或程序集“Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=……” 未能加載文件或程序集“Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一個依賴項。系統找不到指定的文件。 未能加載文件或程序集“ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf116 未能加載文件或程序集“Seagull.BarTender.Print, Version=11.0.8.1, Culture=neutral, PublicKeyToken=109ff779a1b4cbc7
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM