引用dll 报错

A项目引用已经生成的B.dll。B.dll 需要引用Oracle.ManagedDataAccess, Version=4.121.1.0
用.net Reflector 反编译调试B.dll (PS 调试时,加入新的断点之后。最好重启一下项目,遇到断点加入失败的问题)。 B中含有 C、D、E方法,其中E方法中含有如下语句
( OracleDataReader reader = OracleHelper.ExecuteReader(DbConnectionString, CommandType.Text, cmdText, null); )
C调用D和E 调用D没问题,调用E的时候
一直报
System.IO.FileNotFoundException: Could not load file or assembly 'Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342'. 系统找不到指定的文件。
File name: 'Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342'

看了代码。虽然没有执行以下语句。(if过滤了,原项目引用了oracle的新版本,但是没有用起来所以可以替换掉)
OracleDataReader reader = OracleHelper.ExecuteReader(DbConnectionString, CommandType.Text, cmdText, null);
但是还是需要当前的Oracle的dll,但是奇怪的是。执行当前函数之前的语句都可以正常执行,调用到这个函数开始报错(整个dll只有这个函数执行了这个语句)。暂时还不知道原因。

解决方案:将原引用删除。引用4.121.1.0版本的dll

posted @ 2020-12-03 14:59  Something_lzm  阅读(206)  评论(0)    收藏  举报