使用ODT 11.2.3.20正确安装Oracle ODAC

使用ODT 11.2.3.20正确安装Oracle ODAC,oracle,oracle11g,odp.net,Oracle,Oracle11g,Odp.net,好的-我已经在运行Windows 7 Enterprise的32位开发人员计算机上安装了VS 2012和VS 2013,并且正在尝试连接到Oracle 9数据库。我可以毫无问题地安装版本12.1.0.24,并且我可以通过服务器数据连接工具等使用ODP.NET托管和非托管驱动程序连接到大多数数据库。问题是我还必须构建连接到旧版Oracle DB服务器实例的应用程序,并且确实需要一个旧版本的VS工具和ODP.NET/ODAC,ie 11.2.3.20。这似乎安装正确,但当您尝试构建新的数据连接时,默

好的-我已经在运行Windows 7 Enterprise的32位开发人员计算机上安装了VS 2012和VS 2013,并且正在尝试连接到Oracle 9数据库。我可以毫无问题地安装版本12.1.0.24,并且我可以通过服务器数据连接工具等使用ODP.NET托管和非托管驱动程序连接到大多数数据库。问题是我还必须构建连接到旧版Oracle DB服务器实例的应用程序,并且确实需要一个旧版本的VS工具和ODP.NET/ODAC,ie 11.2.3.20。这似乎安装正确,但当您尝试构建新的数据连接时,默认的数据提供程序是“.NET Framework data Provider for Oracle”有一个“Oracle data Provider for.NET”选项,但似乎无法指定tnsnames.ora位置,“数据源名称”组合中唯一可用的选项是(本地数据库)。”


此外,没有为提供程序选择托管或非托管的选项。有人能告诉我如何正确操作才能使其正常工作吗?是否有我必须手动进行的机器范围的配置,12.1.0.24的安装程序会自动进行这些配置?

通常不需要安装多个Oracle客户端(32位和64位各一个)。您可以使用12.1客户端连接到较旧的数据库(对于托管驱动程序,数据库必须是10.2或更新版本)

最有可能的情况是,您将Oracle安装搞砸了,将它们全部删除,然后从头安装一个版本

为了使您的应用程序独立于已安装的Oracle客户端,请打开*.csproj、resp.*.vbproj文件并编辑对ODP.NET的引用,如下所示:

<Reference Include="Oracle.DataAccess">
  <SpecificVersion>False</SpecificVersion>
  <Private>False</Private>
</Reference>

假的
假的
不需要像
Version=…
processorArchitecture=…
这样的属性。您的应用程序将根据所选的体系结构和目标.NET framework加载正确的
Oracle.DataAccess.dll
(前提是安装正确)


“Oracle.DataAccess”和“Oracle.ManagedDataAccess”是不同的程序集,所以你不能无缝地使用它们-除非你使用和类似的东西。

是的-我有一个Oracle 9数据库需要连接。所以我卸载了12,安装了11.2.3,但它不能与我描述的Visual Studio工具一起使用。检查这个:我假设你只需要用于测试,我建议安装旧的驱动程序在(虚拟)老式机器上测试应用程序,而不是在开发机器上安装和卸载几个Oracle客户端。ODP.NET托管驱动程序相对较新(第一个版本是12.1)而且从不允许支持Oracle 9数据库。由于Oracle 9已经多年不受支持,任何针对它的新开发都可能必须使用旧技术(旧版本的驱动程序,甚至旧版本的Visual Studio)。而且在所有这些之后,您的应用程序将不受Oracle支持。因此,我将确保您的客户了解他们在进行这项新开发时所处的环境。要解决ODP.NET未显示在“连接”对话框中的具体问题,首先您需要确保安装了“ODTwithODAC”,并且您选择了要与之集成的Visual Studio版本。(请注意,11.2版本不支持VS 2013或更高版本)因此,您必须使用VS 2012或更早版本。如果您正在使用VS 2012并执行了上述操作,但仍然存在问题,请尝试卸载所有Oracle客户端软件并重新安装。在“连接”对话框中看不到ODP.NET表示安装失败。最后,您可能不需要Visual Studio集成来开发应用程序在上(例如,您不使用VS数据设计器或向导来设置TableAdapters或Entity Framework)。如果是这样,为了简单起见,我只安装ODP.NET,而不考虑使用Oracle Developer工具或服务器资源管理器。这样,您就不受所使用VS版本的限制。