У меня есть C ++ DLL (без кода), которую я хочу предоставить приложениям .NET.
После обдумывания всех имеющихся у меня / известных мне опций (COM, P / Invoke, SWIG и т. Д.) Я пишу библиотеку классов .NET (на C ++ / CLI). Теперь результирующая DLL (библиотека классов) также требует исходной DLL и ее зависимостей. Моя проблема заключается в автоматическом отслеживании таких вещей, чтобы приложениям, использующим оболочку, не приходилось отслеживать другие (нативные) библиотеки DLL (особенно, если исходные библиотеки DLL развивают новую зависимость).
Чтобы быть более точным (и есть что-то конкретное для обсуждения), я пытаюсь обернуть cmr
, поэтому я пишу MR
, библиотеку классов (которая, естественно, зависит от cmr
). cmr
зависит от PNL
, OpenCV
и других. Когда я попытался добавить ссылку на MR
в (C #) проекте, Visual Studio (2005 SP1) просто скопировал MR.DLL
, оставив все зависимости позади, и затем пожаловался (выбросив FileNotFoundException
о пропущенных модулях). Копирование cmr
, PNL
и т. Д. В каталог bin
вручную решило проблему.
Без лишних слов, мой вопрос таков: есть ли способ для приложений .NET добавить ссылку только на одну DLL, и все просто работает ?
Я искал через Google и SO, но безрезультатно ...
EDIT : mergebin кажется наиболее близким к тому, что я ищу, но он может объединить .NET DLL только с одной встроенной DLL. Жаль, что нельзя объединять нативные библиотеки DLL.