sql >> Database >  >> RDS >> Oracle

Oracle.DataAccess mismatch-fout

Zoals je al zei, het is slechts een waarschuwing. Omdat ODP.net geen "AnyCPU" is, geeft de waarschuwing aan dat u een afhankelijkheid hebt die zich niet zal aanpassen aan het hostbesturingssysteem zoals uw eigen toepassing. Zolang je odp.net-installatie qua bits overeenkomt met het besturingssysteem, komt het goed. Maar de compiler kan die beslissing niet nemen en probeert u een waarschuwing te geven.

Ik heb een connect artikel gevonden hierop die een mogelijke wijziging bevat (ik neem aan in het proj-bestand) om de fout uit te schakelen:

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

In ieder geval zal uw "AnyCPU"-toepassing prima werken op uw server zolang het 32-bits odp.net dat u op de server installeert dezelfde versie is als het 64-bits odp.net waarnaar u verwijst (of het uitgeversbeleid correct is geïnstalleerd om doorverwijzen naar een latere versie). Om verwarring te voorkomen, stel ik over het algemeen "Copy Local" in voor de verwijzing naar "false". Met andere woorden, ik compileer tegen een specifieke versie van de dll, maar laat het draaien tegen wat het oplost van de GAC (inclusief het uitgeversbeleid dat de meeste odp.net-installaties bevatten).

U kunt ook de 32-bits odp.net op uw dev-machine installeren (idealiter dezelfde versie opnieuw) om 32-bits toepassingen uit te voeren/debuggen of om de geïntegreerde tooling te gebruiken die "met Oracle Developer Tools for Visual Studio" in Visual wordt geleverd Studio.

Dat gezegd hebbende, er is hier meer dan op het eerste gezicht lijkt. Als je applicatie in feite draait (wat wordt geïmpliceerd met "het is maar een waarschuwing"), als 64 bit, dan gebruikt het NIET je 32 bit installatie. Ik vermoed dat op uw computer de 64-bits versie al is geïnstalleerd (meerdere Oracle-homes).



  1. dblink gebruikt het .pgpass-bestand niet

  2. Hoe selecteer ik een string tussen twee strings in een kolom in SQL Server?

  3. Hoe haal je de eerstvolgende date van een tafel?

  4. Meerdere rijen samenvoegen in SQL