Det är möjligt att tvinga din applikation att alltid använda den ODP- och ODAC-version du vill ha.
-
Force ODP-version:använd assemblyBinding-tricket som postats av Robert, för att tvinga fram din version av Oracle.DataAccess istället för GAC-versionen. T.ex.:
<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>
-
Forcera ODAC-version:ODP DLL-filen beror på en uppsättning delade Oracle-komponenter (direktklient, ohanterade OCI-dll-filer). Ett sätt att få dessa är via ODAC-paketet. Du kan definiera (per app-basis) vilket ODAC-paket du vill använda. Traditionellt gjordes detta via PATH env-variabeln, men den kan nu definieras 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>
-
Som en extra försiktighetsåtgärd kan du alltid ta bort GAC:s utgivarpolicy-DLL för att säkerställa att det aldrig händer något konstigt.