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

Chyba nesouladu Oracle.DataAccess

Jak jsi řekl, je to jen varování. Protože ODP.net není "AnyCPU", varování označuje, že máte závislost, která se nepřizpůsobí hostitelskému operačnímu systému jako vaše vlastní aplikace. Pokud se vaše instalace odp.net shoduje s operačním systémem, pokud jde o bity, budete v pořádku. Kompilátor však není schopen toto rozhodnutí učinit a snaží se vás upozornit.

Našel jsem článek o připojení na tomto, který zahrnuje možnou změnu (předpokládám, že soubor proj) k deaktivaci chyby:

<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>

V každém případě bude vaše aplikace „AnyCPU“ na vašem serveru fungovat správně, pokud 32bitový odp.net, který na server nainstalujete, bude stejnou verzí jako 64bitový odp.net, na který jste odkazovali (nebo pokud jsou zásady vydavatele správně nainstalovány na přesměrování na novější verzi). Abych odstranil jakýkoli zmatek, obecně jsem nastavil „Kopírovat místní“ pro odkaz na „nepravda“. Jinými slovy, kompiluji proti konkrétní verzi dll, ale nechávám ji běžet proti tomu, co řeší z GAC (což zahrnuje zásady vydavatele, které zahrnuje většina instalací odp.net).

Můžete také nainstalovat 32bitový odp.net na svůj dev stroj (ideálně stejnou verzi znovu), abyste mohli spouštět/ladit 32bitové aplikace nebo používat integrované nástroje, které jsou dodávány „s Oracle Developer Tools for Visual Studio“ uvnitř Visual Studio.

Vše, co bylo řečeno, je zde více, než se na první pohled zdá. Pokud vaše aplikace ve skutečnosti běží (což znamená „je to pouze varování“) jako 64bitová, pak NEPOUŽÍVÁ vaši 32bitovou instalaci. Tipoval bych, že váš počítač již má nainstalovanou 64bitovou verzi (více věšteckých domovů).



  1. Můžete se připojit k dílčímu dotazu s Doctrine 2 DQL?

  2. klauzule BETWEEN versus <=AND>=

  3. jak zvýšit délku výstupu sloupce sqlplus?

  4. Hodnocení společných pozic v MySQL