oracle - Oracle 11g 客户端是否需要 ODP.NET?

标签 oracle odp.net

我可能在这里问错了问题,如果是这样,我愿意改变它。

我有一个使用 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 :

  • 您不必在目标机器上安装任何东西(包括开发箱!)。
  • 您可以确保您的应用程序将与您选择的特定客户端一起运行。
  • 您甚至可以轻松地让多个应用程序在同一台计算机上使用不同的客户端版本。
  • 不利的一面是,它会显着增加您的应用程序的权重(最低约 19Mb)。

  • 查询 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/

    相关文章:

    sql - 使用另一个表的最大日期更新一个表

    Oracle - 如何创建只读用户

    sql - 替代 WHERE 子句中的多个连接?

    deployment - 无需安装即可部署ODP.NET

    oracle - Oracle中创建虚拟 View 时出现错误代码

    sql - ORACLE 数据库如何将 DATE 隐式转换为 NUMBER?

    .net - ODP.NET程序编译

    .net - 用于 .NET 4.0 的 32 位 Oracle 客户端安装的 Oracle.DataAccess.dll?

    oracle - 部署和配置 ODP.NET,使其无需安装 Entity Framework 即可工作

    c# - ODP.net 将 UDT 作为表传递给 C# 中的存储过程