我可能问错了问题,如果是的话,我愿意改变它。
我有一个使用Microsoft.NET Oracle的项目(我们的计划是改为ODP,但我们还没有这么做)。
我试图让这个项目构建在一个windows 2008 (x64)构建服务器上。它构建得很好,但是当我们的单元测试碰到Oracle数据库上的内容时就失败了。
我最初安装了32位Oracle9i客户端,这是我们目前在winxp开发框和上一个2003构建服务器上使用的。但是现在它得到了这样的消息:尝试加载Oracle抛出的BadImageFormatException。在安装32位Oracle客户端组件时,在64位模式下运行时会出现此问题。
我们试着编译到x86平台,但这并没有改变错误消息。
我现在已经安装了11g 64位客户端,但是我收到了一条消息: System.Data.OracleClient需要Oracle软件版本8.1.7或更高版本。
那么,我应该使用什么Oracle安装呢?
编辑:
我能让这件事起作用。结果是测试导致了问题,迫使NUnit以32位模式运行:链接 I能够让测试使用旧的32位驱动程序工作。这将是一个糟糕的答案,所以我不会使用它,但会很高兴地奖励正确的答案,任何人在转换到甲骨文64位驱动程序的一些好的信息。
发布于 2009-08-27 13:54:05
谈到甲骨文,我喜欢使用Oracle即时客户端:
有关更多信息,请查看将C#连接到Oracle数据库所需的最小客户端占用空间是多少?。要了解如何设置将在x86和x64机器上工作的Visual项目,请查看我的博客文章Visual中的Oracle即时客户端。
发布于 2012-12-21 09:22:57
我正在添加一个新的答案,因为从今年秋天(2012年)开始,ODP管理的代码Beta是可用的。有关详细信息,请参阅此链接。它对我们来说是高度稳定的,我们在生产中使用它,主要是因为以下原因:
但是要转换到64位,下载托管ODP驱动程序并将Oracle.DataAccess引用更改为Oracle.ManagedDataAccess并重新编译:)
发布于 2009-07-21 21:46:35
我认为"System.Data.OracleClient需要OracleClientSoftwareVersion8.1.7或更高版本“的消息类似于"Oracle未安装、安装但未找到或已安装但需要8.1.7或更高版本”。
如果值就在键下面,请检查regedit:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraOdac11g_home1安装时,OraOdac11g_home1依赖于Oracle名称。
此外,请尝试通过Visual进行连接,以查看是否可能。
https://stackoverflow.com/questions/1160218
复制相似问题