我有一个使用FluentMigrator并连接到Oracle数据库来运行其查询的应用程序。以前,它是利用Oracle.ManagedDataAccess;来做到这一点的;但是现在我被要求让它使用Oracle.DataAccess --这就是我遇到问题的地方。
当我运行我的应用程序时,我会发现一个错误,说明它找不到'Oracle.DataAccess‘或它的依赖项之一。我已经更改了对Oracle.ManagedDataAccess;的所有Oracle.DataAccess引用,但是我的应用程序似乎仍然想要这个较旧的dll。如果我将常规的ManagedDataAccess);dll放回与我的应用程序相同的文件夹中(与DataAccess一起工作)。
我的问题是: Oracle.ManagedDataAccess是否要求我在项目中也有常规的DataAccess dll?我的理解是,ManagedDataAccess可以做任何事情,而没有任何外部依赖。
编辑:传递给Migrate.exe的参数是否意味着使用Oracle.DataAccess.dll?也许我指的是它,而不是承认它?
发布于 2015-08-06 14:38:48
Oracle.ManagedDataAccess应该是你所需要的。尝试在您的解决方案目录上运行代理Ransack,并查看Oracle.DataAccess是否仍被引用。
发布于 2015-08-06 16:50:58
最终的答案是,我使用FluentMigrator来调用我的项目,它使用参数来指定数据库驱动程序。以前,我使用的是值"Oracle",因为这就是我连接到的DB类型。
但是,当我更改为Oracle.ManagedDataAccess.dll时,我假设FluentMigrator中的参数不需要更改。(“我仍在连接到Oracle数据库!”)结果,该参数有一个"OracleManaged“值。
当我更改参数值时,应用程序立即停止尝试查找旧的DLL。这解释了为什么,即使我删除了引用,应用程序似乎仍然设置使用旧的dll。
https://stackoverflow.com/questions/31857883
复制相似问题