Możliwe jest zmuszenie aplikacji, aby zawsze używała żądanej wersji ODP i ODAC.
-
Wymuś wersję ODP:użyj sztuczki AssemblyBinding opublikowanej przez Roberta, aby wymusić użycie swojej wersji Oracle.DataAccess zamiast wersji GAC. Np.:
<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>
-
Wymuś wersję ODAC:Biblioteka DLL ODP zależy od zestawu współużytkowanych składników Oracle (klienta błyskawicznego, niezarządzanych bibliotek dll OCI). Jednym ze sposobów uzyskania tego jest pakiet ODAC. Możesz zdefiniować (na podstawie aplikacji), z którego pakietu ODAC chcesz korzystać. Tradycyjnie robiono to za pomocą zmiennej PATH env, ale teraz można ją zdefiniować za pomocą konfiguracji:
<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>
-
Jako dodatkowy środek ostrożności zawsze możesz usunąć bibliotekę DLL zasad wydawcy GAC, aby upewnić się, że nigdy nie dzieje się nic dziwnego.