2011-08-15 56 views
0

我已经下载并试图通过firebird的.net提供程序(FirebirdSql.Data.FirebirdClient.dll)在.net/mono环境中使用嵌入式firebird(原生fbembed.dll及其助手) )。嵌入式火鸟的呼叫限制

主要问题我一直坚持认为,嵌入式firebird组件似乎要求所有东西都在同一个项目中的相同目录中(直到应用程序入口点代码)。当我尝试创建一些托管的库dll代码依赖于(并位于相同的目录中)原生fbembed.dll和.net提供程序,然后从驻留在别处的托管代码调用该托管库dll(另一个目录中的另一个项目)....一切都爆炸说fbembed.dll无法找到...即使当通过提供程序实际调用fbembedd.dll的托管库代码与fbembed.dll位于同一目录中时。

IN SHORT ......要求“在同一目录下”的要求不仅扩展到直接调用代码,而且一直延伸到调用堆栈到达入口点本身。

[注意:我已经尝试过使用Visual C#2010 .net 4.0,Monodevelop 2.4,mono 2.8,mono 2.10,.net firebird提供程序版本2.6.5 ...没有触及本地fbembed.dll中的.config文件目录]

此问题立即消失除了将最终调用方法(即主要方法)到该目录中包含fbembed.dll和.NET提供FirebirdSql.Data.FirebirdClient.dll

回答

1

使用ClientLibrary连接字符串(或FbConnectionStringBuilder类)中的参数,指向ADO.NET提供程序,指向fbembed.dll的位置。