2

我最近正在研究 Firebird Embedded 作为可以在我的项目中替代 SQLite 的产品。问题是,我希望能够在 Windows 和 Linux 上使用相同的应用程序编译,但不幸的是,使用 SQLite 这是不可能的。

尽管如此,我还是无法让 Firebird 在 Linux 上运行 Mono(还没有尝试过 Windows)。

我做过的事情:

  1. Firebird ADO.NET Provider从 NuGet安装。
  2. 为 Windows 库下载32 位嵌入式客户端并解压缩到我的 bin 目录:fbembed.dll, firebird.cfg, firebird.msg, ib_util.dll, icudt30.dll, icuin30.dll, icuuc30.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 回答