使用c#无法加载Oracle.DataAccess.dll

本文关键字:Oracle DataAccess dll 加载 使用 | 更新日期: 2023-09-27 17:49:30

我在加载oracle.dataaccess时遇到了问题。下面是我得到的消息:

无法加载文件或程序集。DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342'或其依赖项之一。试图加载格式不正确的程序。

我有以下条目在我的网页。

<add assembly="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral,
  PublicKeyToken=89b483f429c47342"/>
总成下

<dependentAssembly>
  <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342"
    Culture="neutral" />
  <BindingRedirect oldVersion = "2.112.1.2" newVersion = "2.112.1.0" />
</dependentAssembly>**

我正在windows Vista机器上开发Visual Studio 2008。我已经为32位应用程序启用了IIS 7.0应用程序池,并且这个项目的平台目标是x86而不是'Any CPU'。

我还在努力弄清楚这件事到底出了什么问题。

使用c#无法加载Oracle.DataAccess.dll

似乎问题是你安装了64位客户端,这将不会被Visual Studio识别,因为它是一个32位应用程序。不幸的是,我发现最好的解决方案是在同一台机器上安装32位和64位客户端。我安装一个在C:'Oracle'11gClient32和另一个在C:'Oracle'11gClient64。您应该先安装32位版本,然后再安装64位版本。

请记住,您将需要维护sqlnet的两个副本。我和我的名字。在[oracle]'network'admin文件夹。

Oracle。DataAccess程序集有32位和64位两种版本。检查项目引用的程序集的位,对于32位(x86)应用程序,它必须是32位。

确保在机器上安装了Oracle Client软件。简单地引用Oracle。DataAccess不能开箱即用。编译

您确定已经添加了程序集吗?也……你确定要代币吗?最后……就像上面那个家伙建议的那样,你确定32/64兼容吗?

我也有类似的问题,我得到下面的错误:

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

它在我的本地系统中正常工作,我安装了32位和64位版本的dll。但是在服务器上,只安装了64位版本,我不允许进行任何安装。

所以按照以下步骤:

1)The project reference pointed to OracleDataAccess.dll , version 64 bit.
2)In the project properties -> Build -> Platform target : x64. So when you 
select x64, Prefer 32-bit option would be unchecked automatically. Then I 
did re-build of the project and deployed. 

终于可以连接到oracle数据库了

如果是64位问题,您可以尝试将目标CPU更改为x86(项目属性-编译选项卡-高级编译选项-目标CPU)并重新编译。