我设计了一个C#应用程序来连接Oracle数据库并更改架构用户密码。我的引用程序集是来自以下位置的System.Data.OracleClient:&#34; C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ System.Data.OracleClient.dll&#34; < / p>
我用来设计/测试应用程序的平台如下所示: 1. 64位Windows 7平台。 2. 32位.Net Frameworkv4.5 3. 32位Oracle 10g客户端。
我也需要这个应用程序来运行64位Oracle客户端。但是,当我将二进制文件传输到安装了64位Oracle 11g的计算机时,我收到此错误:&#34;尝试加载Oracle客户端库会引发BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时会出现此问题。&#34;
我不知道如何解决这个问题。请建议我是否需要进行任何代码更改或汇编参考。我阅读了很多类似的论坛,但找不到任何有用的东西。请帮忙!
答案 0 :(得分:3)
首先,不推荐使用提供程序System.Data.OracleClient
。 Microsoft不再支持它,您应该考虑使用Oracle提供程序Oracle.DataAccess
或Oracle.ManagedDataAccess
。
我的建议是在您的开发机器上安装32位和64位Oracle客户端,然后您可以测试和构建任何东西。以下是如何执行此操作的说明:Install x86 and x64 Oracle Client on one machine
x86 Oracle客户端可以连接到64位Oracle数据库,反之亦然也没问题。
答案 1 :(得分:0)
我在Windows 10 PC上遇到了同样的问题。我将项目从旧计算机复制到新计算机,均为64位,并在新计算机上安装了Oracle Client 64位。我得到了同样的错误信息,但在尝试了许多解决方案后没有效果,实际上对我有用的是:
在Visual Studio中(我的是2017年)转到
工具&gt;选项&gt;项目和解决方案&gt;网络项目
在该页面上,选中以下选项:对网站和项目使用64位版本的IIS Express
答案 2 :(得分:0)
尝试一下:
如果要用于从MS Visual Studio在.net框架上进行连接,则应下载,提取并安装ODTwithODAC183.zip和BuildTools_Full.exe