1

FluentMigrator を使用し、Oracle データベースに接続してクエリを実行するアプリケーションがあります。以前は、これを行うために Oracle.DataAccess を利用していました。しかし、今は Oracle を使用するように依頼されています。管理されたデータアクセス; これは私が問題を抱えているところです。

アプリを実行すると、「Oracle.DataAccess」またはその依存関係の 1 つが見つからないというエラーが表示されます。Oracle.DataAccess のすべての参照を Oracle に変更しました。管理されたデータアクセス; ただし、私のアプリケーションはまだこの古い dll を必要としているようです。その通常の DataAccess dll をアプリと同じフォルダーに戻すと ( Managed DataAccessと共に); できます。

私の質問:オラクルですか。Managed DataAccess では、プロジェクトに通常の DataAccess dll も必要ですか? 私の理解では、Managed DataAccess はすべてを実行でき、外部依存関係はありません。

編集: Migrate.exe に渡されるパラメーターは、Oracle.DataAccess.dll の使用を意味しますか? おそらく私はそこで言及していて、それを認識していないのでしょうか?

4

2 に答える 2

0

答えは、プロジェクトを呼び出すために使用している FluentMigrator がパラメーターを使用してデータベースドライバーを指定するということでした。以前は、「Oracle」という値を使用していました。これは、接続先の DB のタイプであったためです。

しかし、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 に答える