0

我已经下载并尝试通过 firebird 的 .net 提供程序(FirebirdSql.Data.FirebirdClient.dll)在 .net/mono 环境中使用嵌入式 firebird(本机 fbembed.dll 及其助手)。

我坚持的主要问题是嵌入式 firebird 组件似乎要求所有内容都位于同一项目的同一目录中(直到应用程序入口点代码)。当我尝试创建一些托管库 dll 代码时,它依赖于(并位于同一目录中)本机 fbembed.dll 和 .net 提供程序,然后从位于其他地方的托管代码(另​​一个目录中的另一个项目)调用该托管库 dll ) .... 一切都在说找不到 fbembed.dll ... 即使通过提供程序实际调用 fbembedd.dll 的托管库代码与 fbembed.dll 位于同一目录中。

简而言之......“在同一目录中”的要求不仅延伸到立即调用代码,而且一直通过调用堆栈到达入口点本身。

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

将最终调用方法(即 Main 方法)带入包含 fbembed.dll 和 .net 提供程序 FirebirdSql.Data.FirebirdClient.dll 的目录后,此问题立即消失

4

1 回答 1

1

Use a ClientLibrary parametr in connection string (or in FbConnectionStringBuilder class), to point ADO.NET provider, to where the fbembed.dll is.

于 2012-01-05T13:37:39.810 回答