Laden...

Beim Zugriff auf eine Oracle Datenbank wird eine DLL nicht gefunden

Erstellt von sindibad vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.661 Views
S
sindibad Themenstarter:in
110 Beiträge seit 2012
vor 5 Jahren
Beim Zugriff auf eine Oracle Datenbank wird eine DLL nicht gefunden

verwendetes Datenbanksystem: <Oracle Client 11>

Hallo Zusammen,
ich habe einen Problem mit Oracle Client.
ich greife auf einer Oracle Datenbank mit odp zu.

Fehlermeldung:
m_Connection = new OracleConnection(); führt zu der Exeption:
{"Der Typeninitialisierer für &quot;Oracle.DataAccess.Client.OracleConnection&quot; hat eine Ausnahme verursacht."}
innerexeption: {"Die DLL &quot;OraOps12.dll&quot;: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden."}

im Project habe verweis auf Oracle.dataaccess und verweist auf C:\oracle\product\11.2.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll

das hat schon mal funktioniert aber nach
Installation von einer zweite Oracle Client 12, tritt das Problem auf.
eine Deinstallation von zweiten Oracle Client 12 und neuen Installation von der ersten client 11 hat nichts geholfen.
irgendwie versucht oracle odp immer noch auf den zweiten oracle Client dlls zuzugreifen, die nicht mehr gibt. wie kann ich oracle beibringen dass er weider auf den ersten Instance zugreift. registry eintrag?

kann jemand bitte helfen?

16.807 Beiträge seit 2008
vor 5 Jahren

Du musst ODP via NuGet referenzieren.

DLLs irgendwohin zu packen, wo dann die Hälfte fehlt, war auch in .NET noch nie ne gute Idee 😉

3.511 Beiträge seit 2005
vor 5 Jahren

Wenn es nicht unbedingt per ODP sein muss, würde ich den ManagedDriver von Oracle empfehlen. Das Ding ist nur 5MB groß und reicht vollkommen aus. Ansonsten schleppt man immer ein über 100MB großen Client mit sich rum.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

3.003 Beiträge seit 2006
vor 5 Jahren

Der vollständige Name ist "ODP.NET, Managed Driver". Das ist dasselbe und kann ohne lokale Installation per nuget eingebunden werden, wie Abt gesagt hat.

4.9 MB https://www.nuget.org/packages/Oracle.ManagedDataAccess

Alternativ die .net standard-Variante:

4.5MB https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core

Und ja, das Handling von verschiedenen Client-Versionen ist seitens Oracle einfach unterirdisch schlecht. Mit nuget spart man sich einige graue Haare.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)