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

Tim*_*yer 4 oracle odp.net visual-studio-2013 windows-8.1

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

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

Oracle.DataAccess, Version=2.112.1.0, ..., processorArchitecture=AMD64
Run Code Online (Sandbox Code Playgroud)

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

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

Wer*_*eit 8

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

这取决于你的编译目标(x86x64AnyCPU)甲骨文你需要运行/从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. 打开你的*.csproj,相应的.*.vbproj使用文本编辑器文件并手动添加引用,即在元素下添加如下行<ItemGroup>:

    <Reference Include="Oracle.DataAccess">
      <SpecificVersion>False</SpecificVersion>
      <Private>False</Private>
    </Reference>
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  4. 使用Oracle的ODP.NET托管驱动程序.您可以从此处下载:64位Oracle数据访问组件(ODAC)下载这也适用于32位应用程序.

  5. 打开注册表编辑器并检查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"
    
    Run Code Online (Sandbox Code Playgroud)
  6. 在编译选项中检查目标框架.安装ODP.NET版本4.x后,必须选择目标.NET Framework 4或更高版本才能在参考列表中查看ODP.NET条目.