ODP.NET x64 / x86版本选择如何工作?

时间:2015-12-30 09:56:31

标签: .net oracle entity-framework visual-studio odp.net

我正在使用ODP.NET从我的应用程序连接到Oracle数据库。我想在x64模式下使用Entity Framework并构建应用程序,但我不太确定ODP.NET的x86 / x64版本选择是如何工作的。

由于您需要安装32位用于Visual Studio的Oracle Dev Tools才能使用EF设计时工具,因此我安装了x64和x86版本。我已将客户端安装到单独的文件夹中。我的问题是:Entity Framework是否能够根据构建设置自动选择正确版本的ODP.NET?

1 个答案:

答案 0 :(得分:2)

如果您运行64位应用程序,即您的编译目标是“x64”,那么您还必须加载64位版本的ODP.NET(以及所有其他64位Oracle客户端文件)。同样适用于32位版本。当ODP.NET在GAC中注册时,此选择将​​自动生效。但是,除了Oracle.DataAccess.dll之外,应用程序还必须加载其他DLL。根据您的PATH变量搜索它们,即如果您的PATH首先包含“错误的”Oracle文件夹,您将获得着名的“提供程序与Oracle客户端版本不兼容”错误

根据此说明BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed安装32位和64位Oracle客户端(和ODP.NET提供程序)时,它应该可以正常运行。