Het is mogelijk om uw applicatie te dwingen om altijd de ODP- en ODAC-versie te gebruiken die u wilt.
-
Forceer ODP-versie:gebruik de assemblyBinding-truc die is gepost door Robert om het gebruik van uw versie van Oracle.DataAccess te forceren in plaats van de GAC-versie. Bijv.:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Oracle.DataAccess" culture="neutral" publicKeyToken="89b483f429c47342"/> <codeBase version="4.112.3.0" href="FILE://Oracle.DataAccess.dll"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
-
Forceer ODAC-versie:de ODP DLL is afhankelijk van een set gedeelde Oracle-componenten (instant client, onbeheerde OCI-dll's). Een manier om deze te krijgen is via het ODAC-pakket. U kunt per app bepalen welk ODAC-pakket u wilt gebruiken. Traditioneel werd dit gedaan via de PATH env-variabele, maar het kan nu worden gedefinieerd via config:
<configuration> <configSections> <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections> <oracle.dataaccess.client> <settings> <add name="DllPath" value="C:\somefolder\ODAC_11.2.0.3.0_32bit\bin" /> </settings> </oracle.dataaccess.client> </configuration>
-
Als extra voorzorgsmaatregel kun je altijd de GAC'd publisher policy DLL verwijderen, om er zeker van te zijn dat er nooit iets geks aan de hand is.