Oracle.DataAccess版本无法加载。

5

我在WPF中遇到了Oracle.DataAccess的问题。我使用Oracle.DataAccess v4.0没有任何问题。但现在它更新到版本4.112,当我在WPF中引用这个版本时,设计师无法加载。它给了我以下错误:

System.BadImageFormatException
Could not load file or assembly 'Oracle.DataAccess, 
Version=4.112.3.0, Culture=neutral, 
PublicKeyToken=89b483f429c47342' or one of its dependencies. 
An attempt was made to load a program with an incorrect format.

请注意,程序可以正常运行。我读到可能是由于属性中的“目标CPU”引起的问题。我测试了x64和x86,但没有任何变化。我该如何解决这个问题。
谢谢。
4个回答

6
问题出在我的Oracle.DataAccess.dll文件上。我已经下载了ODAC 11 XCopy,并且将Oracle.DataAccess.dll从\odp.net4\odp.net\bin\4复制到我的OracleClient的\odp.net\bin\4文件夹,并替换了dll文件。现在它完美地运行了起来。希望对其他人有所帮助。

嗨,Adil。你下載了哪個版本的ODAC 11 XCopy?我試過使用ODAC 11 XCopy Release 5,現在對我來說是工作的。 - Jack Daniel
嗨@JackDaniel。我很高兴它对你有用。很抱歉,但我现在不记得了。 - Adil Mammadov

3

我该怎么办?将所有这些DDL复制到我所有的WPF应用程序中吗? - Adil Mammadov
是的。将它放在应用程序 Debug 或 Release 文件夹中即可。无需引用它,只需要与 Oracle.DataAccess.dll 放在一起。 - Jignesh Thakker
好的。谢谢。但是他们没有谈论WPF设计模式,他们谈论部署或设置程序。但我会尝试。希望能有所帮助。 - Adil Mammadov
是的,这个链接讨论了部署问题。我创建了一个WinForm应用程序,遇到了和你一样的问题。但是在放置依赖的dll文件之后,它完美地工作了。尝试通过放置dll文件来解决问题。 - Jignesh Thakker
你可以在OraHome\BIN目录下找到dll文件。 - Jignesh Thakker
显示剩余2条评论

0

我已经处理过这个问题太多次了。以下是一些PowerShell代码,我通常用它来部署应用程序。

$target = "\\SERVER\c$\PROJECT"
$oracleBin = "C:\oracle\product\11.2.0\client_1\BIN\"
$projectHome = "C:\Users\USER\Code\CSharp\PROJECT\bin\Release\"
$files = @(
($oracleBin + "oci.dll"),
($oracleBin + "orannzsbb11.dll"),
($oracleBin + "oraocci11.dll"),
($oracleBin + "OraOps11w.dll"),
($projectHome + "EntityFramework.dll"),
($projectHome + "EntityFramework.xml"),
($projectHome + "Oracle.DataAccess.dll"),
($projectHome + "PROJECT.exe")
#,($projectHome + "PROJECT.exe.config")
)
foreach($f in $files) {
    copy-item $f $target
}

对于那些在解决这个问题上挣扎的人,我可以提供两点建议:

  1. 你可以根据在 Visual Studio 中引用 Oracle.DataAccess.dll 的位置找到正确的 Oracle home(即你的 client_1\bin 所在位置)。我有多个 Oracle home,所以这是我不得不克服几次的问题。
  2. 以上适用于 Oracle 11g。如果你使用的是 Oracle 12c,我相信类似的过程也会起作用,但一些文件名从 *11.dll 变为 *12.dll。

enter image description here


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接