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

Jef*_*tin 8 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位驱动程序提供一些好信息的人给出正确的答案.

Mac*_*Mac 9

谈到Oracle,我喜欢使用Oracle Instant Client:

  • 您不必在目标计算机上安装任何东西(包括开发框!).
  • 您可以确保您的应用程序将与您选择的特定客户端一起运行.
  • 您甚至可以轻松地让多个应用程序在同一台计算机上使用不同的客户端版本.
  • 作为缺点,它会给您的应用增加一个重要的重量(最低约19Mb).

检查将C#连接到Oracle数据库所需的最小客户端占用量是多少?欲获得更多信息.要了解如何设置可在x86和x64计算机上运行的Visual Studio项目,请查看我的博客文章在Visual Studio中发布Oracle Instant Client.