Възможно е да накарате вашето приложение винаги да използва ODP и ODAC версията, която желаете.
-
Принудителна ODP версия:използвайте трика assemblyBinding, публикуван от Робърт, за да принудите да използвате вашата версия на Oracle.DataAccess вместо версията на GAC. Напр.:
<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>
-
Принудителна ODAC версия:ODP DLL зависи от набор от споделени компоненти на Oracle (незабавен клиент, неуправляеми OCI dll). Един от начините да ги получите е чрез пакета ODAC. Можете да определите (на базата на приложение), кой ODAC пакет искате да използвате. Традиционно това се правеше чрез променливата PATH env, но сега може да се дефинира чрез 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>
-
Като допълнителна предпазна мярка винаги можете да изтриете GAC'd DLL за политиката на издателя, за да сте сигурни, че никога няма да се случи нещо странно.