1

我有一个使用 FluentMigrator 并连接到 Oracle 数据库以运行其查询的应用程序。以前,它使用 Oracle.DataAccess 来执行此操作;但现在我被要求让它使用 Oracle。托管数据访问;这就是我遇到问题的地方。

当我运行我的应用程序时,我收到一条错误消息,指出它找不到“Oracle.DataAccess”或其依赖项之一。我已将 Oracle.DataAccess 的所有引用更改为 Oracle。托管数据访问;但是我的应用程序似乎仍然需要这个较旧的 dll。如果我将该常规 DataAccess dll 放回与我的应用程序相同的文件夹中(连同Managed DataAccess);有用。

我的问题:甲骨文。托管DataAccess 要求我在项目中也有常规的 DataAccess dll?我的理解是Managed DataAccess 可以做所有事情并且没有任何外部依赖。

编辑:传递给 Migrate.exe 的参数是否暗示使用 Oracle.DataAccess.dll?可能我在那里指的是它而不是承认它?

4

2 回答 2

0

答案是我用来调用我的项目的 FluentMigrator 使用参数来指定数据库驱动程序。以前,我使用值“Oracle”,因为那是我要连接的数据库类型。

但是,当我更改为 Oracle.ManagedDataAccess.dll 时,我认为 FluentMigrator 中的该参数不需要更改。(“我仍在连接到 Oracle 数据库!”)原来该参数有一个“OracleManaged”值。

当我更改参数值时,应用程序立即停止尝试查找那个旧 DLL。这就解释了为什么即使我删除了我的引用,应用程序似乎仍然使用旧的 dll。

于 2015-08-06T16:50:58.403 回答
0

Oracle.ManagedDataAccess 应该是您所需要的。尝试在您的解决方案目录上运行 Agent Ransack 并查看 Oracle.DataAccess 是否仍在任何地方被引用。

于 2015-08-06T14:38:48.170 回答