我在Oracle.DataAccess
WPF
遇到问题。我用了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但没有任何变化。我怎么解决这个问题。 提前致谢
答案 0 :(得分:6)
问题在于我的 Oracle.DataAccess.dll 文件。我已经下载了 ODAC 11 XCopy 并将\ odp.net4 \ odp.net \ bin \ 4中的Oracle.DataAccess.dll复制到我的OracleClient的\ odp.net \ bin \ 4文件夹中并替换了dll。现在它就像一个魅力。
希望它对其他人有帮助
答案 1 :(得分:3)
我面临同样的问题,我通过将依赖项DLL放到Oracle.DataAcces来解决。点击此链接What is the minimal setup required to deploy a .NET application with Oracle client 11?
希望它应该有所帮助。
答案 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
}
我可以为那些努力解决这个问题的人添加两个注意事项:
答案 3 :(得分:0)
另一个解决方案是下载并执行& ODAC112030Xcopy.zip' ODAC112030Xcopy.zip中的install.bat文件。来自64-bit Oracle Data Access Components (ODAC) Downloads。