ODP.NET支持32位和64位

本文关键字:64位 32位 支持 NET ODP | 更新日期: 2023-09-27 18:04:42

我正在开发使用ODP的应用程序。. NET连接到Oracle数据库。我想有一个版本的32位和64位机器。问题是我不知道如何用anycpu目标构建项目,似乎需要目标与ODP驱动程序版本相同。所以这意味着我需要同一应用程序的两个版本一个是32位的,另一个是64位的。但同样是没有问题,而使用MS . net Oracle客户端(System.Data.OracleClient)。是否有一种方法使用ODP具有相同的行为。在。NET客户端上?

ODP.NET支持32位和64位

几年后更新:Oracle发布了托管ODP。因此,在。NET应用程序中不再需要为x64/x86而烦恼。您可以在Oracle网站上找到更多信息:http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

根本原因是ODP。. NET对本地 OCI dll的依赖,当然不能是"Any CPU"。

理论上,ODP。.NET可以在。NET代码中检测当前执行的"位性",然后相应地动态加载32位或64位本地dll,但目前并不是这样实现的。

Oracle公司目前正在实施一个完全托管的提供商。但是在那之前,我们不得不为每个"位"做单独的构建。

任何c#项目的默认选项都可以在x64和x86操作系统上运行。

这意味着我需要同一应用程序的两个版本一个是32位,另一个是64位。但这也不是问题使用MS . net Oracle客户端(System.Data.OracleClient)

这是预期的....您需要发布x86版本和x64版本,请注意,x86应用程序不能引用x64程序集,反之亦然。

微软的引用之所以不同,是因为它默认是。net框架的一部分。

我无法在我所在的地方下载文件,我相信,ODP。. NET有一个x86程序集和一个x64程序集。

正确的方法是发布一个x86版本和一个x64版本的程序

ODP。NET是专门为32位或64位平台构建的。他们本可以为AnyCPU构建一个单独的库,允许它在32位或64位进程中使用。然而,正如布兰科·迪米特里耶维奇所暗示的,ODP。. NET托管的dll在幕后使用本机库。本地库是平台特定的;因此需要Oracle构建单独的ODP。. NET库。