Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle.DataAccess steht in Visual Studio 2013 nicht zur Auswahl

Ja, Visual Studio ist eine 32-Bit-Anwendung.

Dies hängt von Ihrem Kompilierungsziel ab (x86 oder x64 oder AnyCPU ) welchen Oracle-Client Sie zum Ausführen/Debuggen Ihrer Anwendung benötigen, unabhängig von der Architektur von Visual Studio.

AnyCPU läuft als 64-Bit auf einem 64-Bit-Windows (was höchstwahrscheinlich der Fall ist)

Oracle.DataAccess wird nicht angezeigt, da es sich um eine 64-Bit-Assembly handelt, Ihr Visual Studio jedoch 32-Bit ist.

Es gibt mehrere Lösungen:

  1. In Add References Verwenden Sie die Browse Abschnitt und suchen Sie Oracle.DataAccess.dll manuell. Normalerweise finden Sie es im Ordner %ORACLE_HOME%\odp.net\bin\2.x\ oder %ORACLE_HOME%\odp.net\bin\4\

  2. Öffnen Sie Ihre *.csproj , bzw. *.vbproj Datei mit einem Texteditor und fügen Sie den Verweis manuell hinzu, d. h. fügen Sie Zeilen wie diese unter dem Element <ItemGroup> hinzu :

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

    Hinweis:Attribute wie Version=... oder processorArchitecture=... sind nicht erforderlich. Ihre Anwendung lädt die richtige Oracle.DataAccess.dll abhängig von der gewählten Architektur und dem Ziel-.NET-Framework (vorausgesetzt, es ist ordnungsgemäß installiert - auch auf Ihrem Zielcomputer)

  3. Installieren Sie sowohl den x86- als auch den x64-Oracle-Client auf Ihrem Computer. Hier ist eine Anleitung dazu:Stack Overflow - Install Oracle x86 and x64

  4. Verwenden Sie den verwalteten ODP.NET-Treiber von Oracle. Sie können es hier herunterladen:64-Bit Oracle Data Access Components (ODAC) Downloads Dies funktioniert auch mit 32-Bit-Anwendungen.

  5. Öffnen Sie Ihren Registrierungseditor und überprüfen Sie, ob RegKey HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.NET bzw. HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.NET existieren. Beide RegKeys enthalten nur den (Default) Wert mit dem Speicherort Ihrer Oracle.DataAccess.dll .

    Beispiel:

    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"
    
  6. Überprüfen Sie Ihr Ziel-Framework in den Kompilierungsoptionen. Wenn Sie ODP.NET Version 4.x installiert haben, müssen Sie das Ziel .NET Framework 4 auswählen oder höher, um den ODP.NET-Eintrag in der Referenzliste zu sehen.