跟踪用于将本机C++ DLL包装到.NET的DLL依赖项

Rem*_*oun 5 c# dll interop c++-cli

我有一个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,但无济于事......

编辑:mergebin似乎最接近我正在寻找,但它只能合并一个.NET DLL与一个本机DLL.太糟糕了,无法合并本机DLL.

Dar*_*rov 6

您可以查看mergebin,这是一个允许您将非托管DLL和托管DLL组合到一个程序集中的工具.System.Data.SQLite使用这种方法.