Я разобрался с проблемой, и теперь все работает правильно.Это была комбинация нескольких неправильных вещей, происходящих вместе.
Если у кого-то есть такая же проблема, я решил ее, настроив следующее:
1) Библиотеки Boost, на которые ссылались (в частности,boost_thread) необходимо скомпилировать с препроцессором BOOST_THREAD_USE_DLL (другие библиотеки boost могут нуждаться в BOOST_ALL_DYN_LINK, чтобы просто динамически связывать все).Это, по-видимому, общая проблема.
2) Я проверил, что все зависимости были в системном пути (как повторил R Ubben)
3) Я использовал DependencyWalker (зависит от.exe от sourceforge), чтобыпроанализировать мою скомпилированную управляемую DLL.Оказалось, что используемая библиотека libpq.lib фактически ссылалась на дополнительные библиотеки DLL, которые не были включены в папку lib, а в папку bin.Так что это нужно добавить в путь.
4) Часть моей обертки использовала заголовок #include для списков.Это заставило мою библиотеку связываться с зависимыми от фреймворка библиотеками 2.0.Это было несовместимо с моим приложением C #, ориентированным на клиента.Это стало известно только при разборе предупреждений от компиляции (ранее скрытой из-за того, что C ++ генерировал слишком много ... глупо, я знаю).Однако это приводило к возникновению исключения System.BadImageFormateException, несмотря на то, что все предназначалось для той же архитектуры x86.
Надеюсь, что это поможет всем, у кого есть такая же проблема.BadImageFormateException и FileNotFoundException были слишком расплывчаты и бесполезны.