sql >> Databáze >  >> RDS >> Oracle

Nelze načíst soubor nebo sestavení pro Oracle.DataAccess v .NET

Dám vám odpovědi z toho, co jsem právě prošel na Windows Server 2008 R2, což je 64bitový operační systém. Sada knihoven aplikací, které jsem dostal, byla vyvinuta pomocí .net 3.5 x86 se staršími knihovnami DLL a já jsem se zasekl, protože jsem si nainstaloval novější klienty x64 z oracle.

Zjistil jsem následující:Nainstalujte nejnovějšího klienta x64 od Oracle pro Windows Server 2008. Věřím, že to bude klient 2.7.0. Když vyberete instalaci, ujistěte se, že jste provedli vlastní a vybrali .NET knihovny. Nakonfigurujte své soubory tnsnames a otestujte své tnsping proti vašemu zdroji dat.

Dále, pokud používáte 32bitovou aplikaci, nainstalujte stejnou verzi klienta pro 32bitovou verzi. Také postupujte podle stejného instalačního postupu a vyberte stejnou domácnost.

Po dokončení zjistíte, že máte jedinou aplikaci/produkt se dvěma adresáři klientů (Klient1 a Klient2).

Pokud přejdete do adresáře windows/assemblies, zjistíte, že máte odkaz na Oracle.DataAccess.dll (x2) s jedním pro x86 a jedním pro AMD64.

Nyní, v závislosti na tom, zda máte vývojáře nebo vyvíjíte na stroji sami, zde můžete být v pořádku, pokud však používají starší ovladače, musíte provést poslední krok.

Přejděte do adresáře app\name\product\version\client_1\odp.net\publisher policy\2.x. Zde jsou zahrnuty dva soubory zásad. použijte gacutil /i k instalaci Policy.2.111.Oracle.DataAccess.dll do GAC. To přesměruje starší volání Oracle ODP na novější verze. Pokud tedy někdo vyvinul s klientem 10g, bude nyní fungovat s klientem 11.

Pro informaci – Někteří možná instalují nejnovější ODP.NET s 2.111.7.20. Samotný hlavní klient Oracle přichází s 2.111.7.0 .. S 7.20 jsem neměl žádný úspěch, ale s klientem 7.0 nemám žádné problémy.



  1. Jak udělat MySQL + podřetězec? + vyměnit?

  2. Jak připojit databázi Oracle k projektu Visual Studio C#

  3. Na DbContextOptions nelze najít metodu UseMysql

  4. Jak používat DELETE ON CASCADE ve vztahu mnoho ku jedné