尝试使用DLL导致错误

时间:2010-06-11 13:20:36

标签: c# .net .net-3.5

我正在使用一个使用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.

有没有办法解决这个问题?可能导致这种情况发生的原因是什么?

2 个答案:

答案 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具有非托管依赖项,我可能无法工作。