我有一个要向 .NET 应用程序公开的 C++ DLL(无代码)。
在考虑了我拥有/知道/可以找到的所有选项(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 的引用,并且一切正常?
我一直在搜索谷歌和SO,但无济于事......
编辑:mergebin 似乎最接近我正在寻找的东西,但它只能将 .NET DLL 与一个本机 DLL 合并。太糟糕了,不能合并本机 DLL。