我可能在这里问错了问题,如果是这样,我愿意改变它。
我有一个使用 Microsoft.NET Oracle 提供程序的项目(我们的计划是更改为 ODP,但我们还没有这样做)。
我试图让这个项目在 Windows 2008 (x64) 构建服务器上构建。它构建得很好,但我们的单元测试在遇到 Oracle 数据库上的内容时失败。
我最初安装了 32 位 oracle 9i 客户端,这是我们目前在我们的 winxp 开发箱和之前的 2003 构建服务器上使用的。但现在这会得到一条消息,如:尝试加载 Oracle 客户端库抛出了 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的情况下以 64 位模式运行时,会出现此问题。
我们尝试编译到 x86 平台,但这并没有改变错误消息。
我现在安装了 11g 64 位客户端,但收到一条消息,提示 System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本。
那么我应该使用什么 Oracle 安装?
编辑:
我能够让这个工作。原来是测试导致了问题,通过强制 NUnit 在 32 位模式下运行:http://geekswithblogs.net/Lance/archive/2006/12/28/102191.aspx我能够使用旧的 32 位驱动程序进行测试。这将是对这个问题的蹩脚答案,所以我没有使用它,但很乐意将正确答案授予任何提供有关过渡到 Oracle 64 位驱动程序的好信息的人。
最佳答案
说到Oracle,我喜欢用Oracle Instant Client :
查询 What is the minimum client footprint required to connect C# to an Oracle database?想要查询更多的信息。要了解如何设置可在 x86 和 x64 机器上运行的 Visual Studio 项目,请查看我的博客文章 Oracle Instant Client in Visual Studio .
关于oracle - Oracle 11g 客户端是否需要 ODP.NET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160218/