È possibile forzare la tua applicazione a utilizzare sempre la versione ODP e ODAC che desideri.
-
Forza la versione ODP:usa il trucco assemblyBinding pubblicato da Robert, per forzare l'uso della tua versione di Oracle.DataAccess invece della versione di GAC. Es.:
<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>
-
Forza la versione ODAC:la DLL ODP dipende da un insieme di componenti Oracle condivisi (client istantaneo, dll OCI non gestiti). Un modo per ottenerli è tramite il pacchetto ODAC. Puoi definire (in base all'app) quale pacchetto ODAC desideri utilizzare. Tradizionalmente questo veniva fatto tramite la variabile PATH env, ma ora può essere definito tramite 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>
-
Come ulteriore precauzione, puoi sempre eliminare la DLL dei criteri dell'editore di GAC, per assicurarti che non si verifichino mai cose strane.