2

私は最近、自分のプロジェクトで SQLite を置き換えることができる製品として、Firebird Embedded を検討していました。問題は、アプリケーションの同じコンパイルを Windows と Linux の両方で使用できるようにしたいのですが、残念ながら SQLite では不可能です。

それでも、Mono を使用して Linux で Firebird を実行することはできません (Windows はまだ試していません)。

私がやったこと:

  1. Firebird ADO.NET ProviderNuGet からインストールされます。
  2. Windows ライブラリ用の 32 ビット組み込みクライアントをダウンロードし、binディレクトリに展開しましfbembed.dllた: 、、、、、、、。firebird.cfgfirebird.msgib_util.dllicudt30.dllicuin30.dllicuuc30.dll
  3. 次を使用して接続文字列を作成しました。

    string fbConnectionString = String.Format ("ServerType=1;User=SYSDBA;" + Password=masterkey;Dialect=3;Database={0};Charset=UTF8", _dbFile);
    FbConnection.CreateDatabase (fbConnectionString);
    
  4. それでも、fbembed.dllパスに見つからないというエラーが表示されます。

私は何をすべきか?

4

1 に答える 1

3

Firebird .NET プロバイダーは、主に Windows プラットフォーム用に開発されています。ワイヤ プロトコルの実装は、Mono および Linux で動作するため、通常の Firebird サーバーに接続できます。

Firebird Embeddedのfbembed.dllライブラリは Windows 固有のものであり、Linux にはロードできません。.NET プロバイダー コードはLinux をサポートしていますが、特に Linux 用にコンパイルする必要があるようです。NuGet パッケージは、Windows と Embedded をサポートするようにコンパイルされた既定のバージョンであると想定しています。

于 2014-02-06T08:42:50.333 に答える