ダウンロードして、firebird の .net プロバイダー ( FirebirdSql.Data.FirebirdClient.dll ) を介して .net/mono 環境に埋め込まれた firebird (ネイティブの fbembed.dll とそのヘルパー) を使用しようとしています。
私が立ち往生している主な問題は、埋め込まれたfirebirdコンポーネントでは、すべてが同じプロジェクトの同じディレクトリにある必要があるように見えることです(アプリケーションエントリポイントコードまで)。ネイティブ fbembed.dll および .net プロバイダーに依存する (および同じディレクトリにある) マネージド ライブラリ dll コードを作成しようとした瞬間、別の場所にあるマネージド コード (別のディレクトリにある別のプロジェクト) からそのマネージド ライブラリ dll を呼び出します。 ) .... fbembed.dll が見つからないと言って、すべてが失敗します ... プロバイダー経由で fbembedd.dll を実際に呼び出すマネージ ライブラリ コードが fbembed.dll と同じディレクトリにある場合でも。
要するに...「同じディレクトリにある」という要件は、すぐに呼び出すコードに及ぶだけでなく、エントリポイント自体に到達するコールスタック全体にまで及びます。
[注: Visual C# 2010 .net 4.0、Monodevelop 2.4、mono 2.8、mono 2.10、.net firebird プロバイダー バージョン 2.6.5 でこれを試しました ... ネイティブ fbembed.dll ディレクトリの .config ファイルに触れずに]
この問題は、fbembed.dll と .net プロバイダ FirebirdSql.Data.FirebirdClient.dll を含むディレクトリに最終的な呼び出しメソッド (つまり Main メソッド) を入れるとすぐに消えます。