[英]'Oracle.DataAccess' assembly not load
我已經在電腦上安裝了odac。我安裝了Visual Studio 2012.ORACLE.Data.Access dll在我的refrence中可用,但出現以下錯誤
Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.
我如何擺脫這個問題。我正在本地運行此應用程序
錯誤消息的重要部分是試圖加載格式錯誤的程序。 這是由兩個問題之一引起的:
要解決此問題,如果DLL是32位,則將應用程序的CPU體系結構目標更改為x86,如果DLL是64位,則將其更改為x64。
從Microsoft文檔中獲取System.BadFormatException :
當動態鏈接庫(.dll文件)或可執行文件(.exe文件)的文件格式不符合公共語言運行庫期望的格式時,將引發此異常。 特別是,在以下情況下會引發異常:
.NET Framework實用程序的早期版本(例如ILDasm.exe或installutil.exe)與通過更高版本的.NET Framework開發的程序集一起使用。
若要解決此異常,請使用與用於開發程序集的.NET Framework版本相對應的工具版本。 這可能需要修改Path環境變量或為正確的可執行文件提供完全限定的路徑。
您嘗試加載非托管動態鏈接庫或可執行文件(例如Windows系統DLL),就像它是.NET Framework程序集一樣。 下面的示例通過使用Assembly.LoadFile方法加載Kernel32.dll來說明這一點。
DLL或可執行文件以64位程序集的形式加載,但包含32位功能或資源。 例如,它依賴於COM互操作或調用32位動態鏈接庫中的方法。
要解決此異常,請將項目的Platform target屬性設置為x86(而不是x64或AnyCPU)並重新編譯。
應用程序的組件是使用.NET Framework的不同版本創建的。 通常,當使用.NET Framework 1.0或.NET Framework 1.1開發的應用程序或組件嘗試加載使用.NET Framework 2.0 SP1或更高版本開發的程序集時,或者當開發了應用程序時,會發生此異常。使用.NET Framework 2.0 SP1或.NET Framework 3.5嘗試加載使用.NET Framework 4或更高版本開發的程序集。 BadImageFormatException可能會報告為編譯時錯誤,或者可能在運行時引發異常。 下面的示例定義一個StringLib類,該類具有單個成員ToProperCase,並且位於名為StringLib.dll的程序集中。
具體來說,第3項是問題的根本原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.