0

I have downloaded and am trying to use the embedded firebird (the native fbembed.dll and its helpers) in .net/mono environment via firebird's .net provider (the FirebirdSql.Data.FirebirdClient.dll ).

The main issue I am stuck with is that the embedded firebird components seem to require that everything be in the same directory in the same project ( upto to the application entry point code). The moment I try to create some managed library dll code dependent on (and located in the same directory as) the native fbembed.dll and .net provider and then call that managed library dll from managed code residing somewhere else (another project in another directory) .... everything blows up saying that fbembed.dll could not be found ... even when the managed library code that actually calls on the fbembedd.dll via the provider is in the same directory as the fbembed.dll.

IN SHORT ... the requirement to be "in the same directory" not only extends to the immediately calling code , but all the way through the call stack reaching the entry point itself.

[Note: I have tried this with Visual C# 2010 .net 4.0 , Monodevelop 2.4 , mono 2.8, mono 2.10, .net firebird provider version 2.6.5 ... without touching .config file in the native fbembed.dll directory ]

This issue immediately disappears upon bringing the ultimate calling method (i.e. Main method) into the directory containing the fbembed.dll and the .net provider FirebirdSql.Data.FirebirdClient.dll

Hugues Van Landeghem
  • 6,755
  • 3
  • 34
  • 59
explorer
  • 11,710
  • 5
  • 32
  • 39

1 Answers1

1

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

cincura.net
  • 4,130
  • 16
  • 40