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



我最近用Visual Studio 2013安装了一台Windows 8.1 64位计算机(可能是32位,至少它安装在Program Files(x86)中)。我还安装了Oracle 11.2.0.1 64位客户端和用于.NET.的Oracle数据提供程序

当我执行gautil/l | findstr Oracle.DataAccess时,我会得到四个条目,包括以下条目:

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

但是,在尝试添加程序集时,我在任何列表中都找不到Oracle.DataAccess(不过Oracle.Web位于"程序集"->"扩展"下)。

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

是的,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.netbin2.x%ORACLE_HOME%odp.netbin4 中找到它

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

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

    注意:不需要像Version=...processorArchitecture=...这样的属性。您的应用程序将根据所选的体系结构和目标.NET框架加载正确的Oracle.DataAccess.dll(前提是它安装正确,也安装在您的目标机器上)

  3. 在您的计算机上同时安装x86和x64 Oracle客户端。以下是如何做到这一点的说明:堆栈溢出-安装Oracle x86和x64

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

  5. 打开注册表编辑器,检查RegKey HKLMSOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727AssemblyFoldersExODP.NET是否分别为。CCD_ 18存在。两个RegKeys都只包含(Default)值和Oracle.DataAccess.dll的位置。

    示例:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727AssemblyFoldersExODP.Net]
    @="c:\oracle\product\11.2\Client_x86\odp.net\bin\2.x"
    [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319AssemblyFoldersExODP.Net]
    @="c:\oracle\product\11.2\Client_x86\odp.net\bin\4"
    
  6. 在编译选项中检查目标框架。当您安装了ODP.NET 4.x版本时,必须选择目标.NET Framework 4或更高版本,才能在参考列表中看到ODP.NET条目。

相关内容

  • 没有找到相关文章

最新更新