Oracle.DataAccess在Visual Studio 2013中无法选择

时间:2015-02-16 09:02:15

标签: oracle visual-studio-2013 windows-8.1 odp.net

我最近用Visual Studio 2013设置了一个Windows 8.1 64位机器(可能是32位,至少它安装在Program Files(x86)上)。 我还安装了带有Oracle Data Provider for .NET的Oracle 11.2.0.1 64位客户端。

当我做gacutil / l |时findstr Oracle.DataAccess,我得到四个条目,包括以下内容:

Oracle.DataAccess, Version=2.112.1.0, ..., processorArchitecture=AMD64

但是,在尝试添加程序集时,我无法在任何列表中找到Oracle.DataAccess(尽管如此,Oracle.Web出现在Assemblies-> Extensions下)。

我是否必须安装32位Oracle客户端(或简称32位ODP.NET),因为Visual Studio是32位?如果是这样,软件是否能够在64位应用程序和64位Oracle客户端(64位ODP.NET)的64位系统上运行?

1 个答案:

答案 0 :(得分:8)

是的,Visual Studio是一个32位应用程序。

这取决于您的编译目标(x86x64AnyCPU)运行/调试应用程序所需的Oracle客户端,无论Visual Studio的体系结构如何。

AnyCPU将在64位Windows上运行64位(最有可能的情况)

Oracle.DataAccess没有出现,因为它是64位程序集,但Visual Studio是32位。

有几种解决方案:

  1. Add References中使用Browse部分并手动找到Oracle.DataAccess.dll。通常,您会在文件夹%ORACLE_HOME%\odp.net\bin\2.x\%ORACLE_HOME%\odp.net\bin\4\

  2. 中找到它
  3. 打开*.csproj,分别为。带有文本编辑器的*.vbproj文件并手动添加引用,即在元素<ItemGroup>下添加如下行:

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

    注意:不需要Version=...processorArchitecture=...等属性。您的应用程序将加载正确的Oracle.DataAccess.dll,具体取决于所选的体系结构和目标.NET框架(前提是它已正确安装 - 也在目标计算机上)

  4. 在您的计算机上安装x86和x64 Oracle客户端。以下是如何执行此操作的说明:Stack Overflow - Install Oracle x86 and x64

  5. 使用Oracle的ODP.NET托管驱动程序。您可以从此处下载:64-bit Oracle Data Access Components (ODAC) Downloads这也适用于32位应用程序。

  6. 打开注册表编辑器并检查RegKey HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.NET是否支持。 HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.NET存在。两个RegKeys仅包含(Default)值和Oracle.DataAccess.dll的位置。

    示例:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net]
    @="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\2.x"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net]
    @="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\4"
    
  7. 在编译选项中检查目标框架。安装ODP.NET版本4.x后,必须选择目标.NET Framework 4或更高版本才能在参考列表中查看ODP.NET条目。