Oracle.DataAccess在Visual Studio 2013中不可供选择

Oracle.DataAccess在Visual Studio 2013中不可供选择,oracle,visual-studio-2013,windows-8.1,odp.net,Oracle,Visual Studio 2013,Windows 8.1,Odp.net,我最近用Visual Studio 2013安装了一台Windows 8.1 64位计算机(可能是32位的,至少它是在程序文件(x86)中安装的)。 我还安装了带有Oracle Data Provider for.NET的Oracle 11.2.0.1 64位客户端 当我执行gacutil/l | findstr Oracle.DataAccess时,我得到四个条目,包括以下内容: Oracle.DataAccess, Version=2.112.1.0, ..., processorArchi

我最近用Visual Studio 2013安装了一台Windows 8.1 64位计算机(可能是32位的,至少它是在程序文件(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位应用程序和64位Oracle客户端(具有64位ODP.NET)?

是的,Visual Studio是32位应用程序

它取决于运行/调试应用程序所需的Oracle客户端的编译目标(
x86
x64
AnyCPU
),而与Visual Studio的体系结构无关

AnyCPU
将在64位Windows上以64位运行(很可能是这种情况)

Oracle.DataAccess
不会显示,因为它是64位程序集,但Visual Studio是32位的

有几种解决方案:

  • 添加引用
    中,使用
    浏览
    部分,手动查找
    Oracle.DataAccess.dll
    。通常,您会在文件夹
    %ORACLE\u HOME%\odp.net\bin\2.x\
    %ORACLE\u HOME%\odp.net\bin\4\

  • 分别打开您的
    *.csproj
    *.vbproj
    使用文本编辑器创建文件并手动添加引用,即在元素下添加类似的行

  • 在编译选项中检查目标框架。安装了ODP.NET 4.x版后,必须选择target
    .NET Framework 4
    或更高版本,才能在参考列表中查看ODP.NET条目


  • 这是ODP.NET的一个非常旧的版本。如果您正在做新的开发,请考虑升级到121.0.2。是的,它与v11数据库兼容,可以与旧的Oracle客户端存在于同一台计算机上。要与Visual Studio设计器和服务器资源管理器集成,您还需要安装“Oracle Developer Tools For Visual Studio”,并且只有较新版本才能与VS 2013配合使用。感谢您提供详细完整的答案。这不是我的选择-向Microsoft投诉。当您从一开始就正确安装Oracle时,默认情况下应该可以。
    <Reference Include="Oracle.DataAccess">
      <SpecificVersion>False</SpecificVersion>
      <Private>False</Private>
    </Reference>
    
    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"