我有一个使用FluentMigrator并连接到Oracle数据库来运行其查询的应用程序。之前,它使用的是Oracle。DataAccess来做这个;但是现在我被要求使用Oracle ManagedDataAccess;这就是我的问题所在。
当我运行我的应用程序,我得到一个错误,说明它不能找到'Oracle。DataAccess'或其依赖项之一。我已经更改了Oracle的所有引用。ManagedDataAccess;然而,我的应用程序似乎仍然想要这个旧的dll。如果我把常规的DataAccess dll放在与我的应用程序相同的文件夹中(以及ManagedDataAccess);它的工作原理。
我的问题: Oracle。管理的数据访问要求我在项目中也有常规的数据访问dll ?这是我的理解,ManagedDataAccess可以做任何事情,没有任何外部依赖。
编辑:是否一个参数传递到迁移.exe意味着使用Oracle.DataAccess.dll?可能我在这里指的是它,而没有认出它?
Oracle。ManagedDataAccess应该是您所需要的全部。尝试在解决方案目录上运行Agent Ransack,看看Oracle。数据访问仍然在任何地方被引用。
答案是FluentMigrator(我用来调用我的项目)使用参数来指定数据库驱动程序。以前,我使用的值是"Oracle",因为这是我连接到的数据库类型。
然而,当我更改到Oracle.ManagedDataAccess.dll时,我已经假设FluentMigrator中的参数不需要更改。("I am still connecting to an Oracle database!")结果是该参数有一个"OracleManaged"值。
当我改变参数值时,应用程序立即停止寻找旧的DLL。这就解释了为什么即使我删除了引用,应用程序似乎仍然在使用旧的dll。