我正在使用一个使用Oracle.DataAccess DLL连接数据库的库(DLL)。 我正在使用C#.NET framework 3.5
当我尝试编译时,会进行编译,但可执行文件会抛出此错误消息。
Could not load file or assembly 'Oracle.DataAccess, Version=2.111.7.20, Culture=
neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt
was made to load a program with an incorrect format.
有没有办法解决这个问题?可能导致这种情况发生的原因是什么?
答案 0 :(得分:3)
该ODBC的DLL可能只是一个32位的dll。你在64位机器上使用它吗?如果是,IIS 7在应用程序池中有一个选项,允许您“启用32位应用程序”。
答案 1 :(得分:2)
一种可能性:您的程序在64位计算机上使用x64或AnyCPU进行编译,但该DLL已经编译,仅支持x86。
如果将解决方案(或项目)的平台更改为x86,则可以解决此问题。
我知道您可以强制64位程序集作为32位应用程序运行:
corflags /32bit+ Oracle.DataAccess.dll
这是有效的,因为MSIL代码未绑定到处理器体系结构。但是我从来没有尝试过另一种方式:
corflags /64bit+ Oracle.DataAccess.dll
所以我不知道这是否有效。如果dll具有非托管依赖项,我可能无法工作。