我正在嘗試將使用Firebird v2.5數據庫的應用程序部署到客戶機。Firebird客戶端安裝
我想使用最低安裝,而不需要運行任何其他安裝程序。從我收集的內容中,我需要做的就是將「FBClient.dll」複製到目標應用程序文件夾(其中包含firebird數據庫文件)。我已經嘗試過這一點,它仍然報告有關無法找到正確的.net數據提供者的錯誤。
例如
C:\Program Files (x86)\MyApp\myApp.exe
C:\Program Files (x86)\MyApp\fbDatabase.fdb
C:\Program Files (x86)\MyApp\fbclient.dll
產生的誤差是:
無法找到或加載註冊.NET Framework數據提供。
而且已經複製,重命名,包括fbclient.dll作爲fbembed.dll
我也嘗試了一堆其他文件複製到app目錄,以及fbclient.dll放置到c: \,c:\ windows,c:\ windows \ system。
我也嘗試安裝客戶端安裝,也沒有喜悅。
有沒有一種方法,我可以使用firebird數據庫,而無需手動編輯machine.config文件或使用gac,並通過我在開發機器上安裝firebird的地獄?我想要一個用戶可以安裝的應用程序,而不要求它由開發人員安裝。
請注意,我正在編寫的應用程序是針對單個機器,單用戶環境,誰知道如何雙擊安裝按鈕,注意跨越一個gnat,如果需要做雙擊以上安裝然後按下GO,只會覺得無聊,按取消,忘記按鈕。
我的文件「FirebirdSql.Data.FirebirdClient.dll」添加到應用程序文件夾,我不再獲得數據提供程序錯誤,而不是我得到以下
"Unable to complete network request to host \"DevMachine\"."
at FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect()
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
我試圖用連接以下
string file = @"C:\Program Files (x86)\MyApp\Test.FDB;";
FbConnection con = new FbConnection("User=SYSDBA;" + "Password=masterkey;" + "Database=" + file + "DataSource=Dev-VS-W7VM;" + "Port3050;" + "Dialect=3;" + "Charset=ISO8859_1;");
try
{
con.Open();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
我已經在我的項目,安裝文件夾包含FirebirdSql.Data.FirebirdClient(.. \ MyApp的) 預先感謝您。
詳細有所欠缺這裏。當然你可以使用複製/粘貼來提供準確的錯誤信息。如果你不能使用複製/粘貼,然後複製它vertbatim。 – 2012-02-02 19:07:46
如果您直接使用客戶端API,將FBClient.dll複製到您的應用程序文件夾中只是一個解決方案。如果您通過C#使用它並使用Firebird .NET數據提供程序,則仍需安裝該數據提供程序並將其註冊爲可用程序集。 (其中,順便說一句,正是錯誤消息告訴你 - 的.NET數據提供程序無法找到或加載) – 2012-02-02 19:33:52
我想辦法解決使用Firebird數據庫,而無需使用GAC或亂用機.config文件在目標機器上。一個獨立的解決方案是必需的,一個簡單的安裝程序,任何插孔可以安裝。 – Craig 2012-02-02 19:54:30