증상 : Oracle 11g Instant Client로 C# 응용 프로그램 배포 시 기존 클라이언트에 Oracle 12c Client가 설치되어 있는 경우 에러가 발생함 ( Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client )
원인 : Oracle.DataAccess.dll 버전 충돌
해결 : C#의 App.config에서 Assembly Binding 사용하여 내가 사용할 DLL 파일 버전과 위치 지정
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" culture="neutral" publicKeyToken="89b483f429c47342"/>
<codeBase version="2.112.1.0" href="FILE://C:/MyProgram/Oracle.DataAccess.dll"/>
<publisherPolicy apply="no"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
컴파일하면 실행파일명.exe.config가 생기는데 이걸 실행파일과 같은 위치에 같이 배포하면 됨.
[참고]
https://support.microsoft.com/en-us/kb/837908
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx#standard_search_order_for_desktop_applications
'ORACLE' 카테고리의 다른 글
Oracle Undo Tablespace Full일 때 확인 (0) | 2021.08.12 |
---|---|
Flashback으로 Drop된 테이블 복구 (0) | 2018.04.09 |
sqlplus / as sysdba 실행 시 ORA-01017: invalid username/password; logon denied 에러 발생 시 (0) | 2017.07.19 |
Flashback Query (0) | 2016.02.18 |
expdp meta 데이터만 이동 (0) | 2015.11.24 |
ORA-28040 (0) | 2015.05.08 |
ORA-00119 & ORA-00130 에러 (0) | 2015.05.07 |
Oracle RecycleBin (0) | 2015.05.04 |
expdp/impdp (0) | 2014.12.31 |
Oracle Instant Client 사용 방법 (0) | 2014.03.28 |