ODP.NET x64/x86 版本选择是如何工作的?
How does ODP.NET x64/x86 version selection works?
我正在使用 ODP.NET 从我的应用程序连接到 Oracle 数据库。我想在 x64 模式下使用 Entity Framework 并构建应用程序,但我不太确定 x86/x64 版本 ODP.NET 的 selection 是如何工作的。
由于您需要为 Visual Studio 安装 32 位 Oracle Dev Tools 才能使用 EF 设计时工具,因此我同时安装了 x64 和 x86 version.I 并安装了客户端以将其分开文件夹。我的问题是:Entity Framework 是否能够根据构建设置自动 select 正确版本的 ODP.NET?
如果您 运行 一个 64 位应用程序,即您的编译目标是 "x64" 那么您还必须加载 ODP.NET 的 64 位版本(以及所有其他 64位 Oracle 客户端文件)。同样分别适用于 32 位版本。当 ODP.NET 在 GAC 中注册时,此选择会自动生效。但是,除了 Oracle.DataAccess.dll
之外,应用程序还必须加载其他 DLL。它们是根据您的 PATH
变量搜索的,即如果您的 PATH 首先包含 "wrong" Oracle 文件夹,您将得到著名的 "The provider is not compatible with the version of Oracle client" 错误。
当您根据此说明安装 32 位和 64 位 Oracle 客户端(和 ODP.NET 提供程序)时,它应该运行良好。
我正在使用 ODP.NET 从我的应用程序连接到 Oracle 数据库。我想在 x64 模式下使用 Entity Framework 并构建应用程序,但我不太确定 x86/x64 版本 ODP.NET 的 selection 是如何工作的。
由于您需要为 Visual Studio 安装 32 位 Oracle Dev Tools 才能使用 EF 设计时工具,因此我同时安装了 x64 和 x86 version.I 并安装了客户端以将其分开文件夹。我的问题是:Entity Framework 是否能够根据构建设置自动 select 正确版本的 ODP.NET?
如果您 运行 一个 64 位应用程序,即您的编译目标是 "x64" 那么您还必须加载 ODP.NET 的 64 位版本(以及所有其他 64位 Oracle 客户端文件)。同样分别适用于 32 位版本。当 ODP.NET 在 GAC 中注册时,此选择会自动生效。但是,除了 Oracle.DataAccess.dll
之外,应用程序还必须加载其他 DLL。它们是根据您的 PATH
变量搜索的,即如果您的 PATH 首先包含 "wrong" Oracle 文件夹,您将得到著名的 "The provider is not compatible with the version of Oracle client" 错误。
当您根据此说明安装 32 位和 64 位 Oracle 客户端(和 ODP.NET 提供程序)时,它应该运行良好。