2014-02-06 75 views
2

我最近正在研究嵌入Firebird作爲一種產品,可以替代我的項目中的SQLite。事情是,我希望能夠在Windows和Linux上使用我的應用程序的相同編譯,不幸的是,使用SQLite是不可能的。獲取Mono和Firebird嵌入式在Linux上工作

儘管如此,我還是無法使用Mono在Linux上運行Firebird(還沒有嘗試過Windows)。

我做的事:

  1. 從安裝的NuGet Firebird ADO.NET Provider
  2. 下載32 bit embedded client for Windows libraries並提取到我的bin目錄:fbembed.dllfirebird.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沒有在路徑中找到。

我該怎麼辦?

回答

3

Firebird .NET提供程序主要是爲Windows平臺開發的。有線協議實現適用於Mono和Linux下,因此它可以連接到普通的Firebird服務器。

Firebird Embedded的fbembed.dll庫特定於Windows,無法在Linux上加載。 .NET provider code確實支持Linux,但看起來你需要專門爲Linux編譯它。我假設NuGet軟件包是默認版本,支持Windows和Embedded。

+0

這就是我所害怕的。所以SQLite就是這樣。謝謝你的澄清。 – moskalak

+0

@moskalak你可以將它作爲一個功能請求添加到http://tracker.firebirdsql.org/browse/DNET –

+1

這是不正確的。 .NET客戶端可以像'fbembed'一樣加載'libfbembed'。 –