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 "Oracle.DataAccess.Client.OracleConnection" hat eine Ausnahme verursacht."}
innerexeption: {"Die DLL "OraOps12.dll": 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?
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 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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)
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)