我正在尝试将使用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