项目中.net 访问Oracle数据库,开发者机器上同时装有ODP.net和Oracle全版本数据库。ODP.net中的Oracle.DataAccess.dll[2.x版本号]与Oracle自带的Oracle.DataAccess.dll[oracle几就是几点几,例:Oracle 9就是9.xx,oracle 11就是11.xx]有时有冲突。比如,DataWindow.net 组件内部加载时会有问题。
这时可以用万能的app.config中得runtime配置节进行运行时转向。
配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
......
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess"
publicKeyToken="89b483f429c47342" culture="neutral"/>
<bindingRedirect oldVersion="8.0.0.0-20.65535.65535.65535"
newVersion="2.112.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
.....
</configuration>
通过app[/web].config配置的方式,可以解决.net 应用程序部署分发过程中的很多问题,诸如:程序集版本兼容性问题、环境变量依赖问题等等等等。