我有一个使用FluentMigrator并连接到Oracle数据库以运行其查询的应用程序。以前,它正在利用Oracle.DataAccess来做到这一点;但现在我被要求使用Oracle。托管 DataAccess;这就是我遇到问题的地方。
当我运行我的应用程序时,我收到一条错误消息,指出它找不到'Oracle.DataAccess'或其中一个依赖项。我已将Oracle.DataAccess的所有引用更改为Oracle。托管 DataAccess;但是我的应用程序似乎仍然需要这个较旧的DLL。如果我将常规DataAccess dll放回到与我的应用程序相同的文件夹中(以及托管 DataAccess);它有效。
我的问题: Oracle。托管 DataAccess是否要求我在项目中也有常规的DataAccess dll?据我所知,托管 DataAccess可以完成所有操作,而且没有任何外部依赖关系。
编辑:传入Migrate.exe的参数是否意味着使用了Oracle.DataAccess.dll?可能我指的是那里并没有认出来?
答案 0 :(得分:0)
Oracle.ManagedDataAccess应该就是您所需要的。尝试在解决方案目录上运行Agent Ransack,看看Oracle.DataAccess是否仍在任何地方被引用。
答案 1 :(得分:0)
答案结果是,我用来调用我的项目的FluentMigrator使用参数来指定数据库驱动程序。以前,我使用的是" Oracle",因为那是我连接的数据库类型。
但是,当我更改为Oracle.ManagedDataAccess.dll时,我假设FluentMigrator中的该参数不需要更改。 ("我仍然连接到Oracle数据库!")事实证明,有一个" OracleManaged"该参数的值。
当我更改参数值时,应用程序立即停止尝试查找旧的DLL。这解释了为什么,即使我删除了我的引用,应用程序似乎仍然使用旧的dll。