【发布时间】:2009-04-19 05:40:32
【问题描述】:
我有一个想要向 .NET 应用程序公开的 C++ DLL(无代码)。
在考虑了我拥有/知道/可以找到的所有选项(COM、P/Invoke、SWIG 等)之后,我正在编写一个 .NET 类库(在 C++/CLI 中)。现在生成的 DLL(类库)也需要原始 DLL 及其依赖项。我的问题在于自动跟踪此类事情,以便使用包装器的应用程序不必跟踪其他(本机)DLL(特别是如果原始 DLL 开发了新的依赖项)。
更准确地说(并且有一些具体的事情要讨论),我试图包装cmr,所以我写了MR,类库(自然依赖于cmr)。 cmr 取决于 PNL、OpenCV 等。当我尝试在 (C#) 项目中添加对 MR 的引用时,Visual Studio (2005 SP1) 只是复制了 MR.DLL,留下了所有依赖项,然后抱怨(抛出 FileNotFoundException 关于缺少模块)。手动将cmr、PNL等复制到bin目录即可解决问题。
事不宜迟,我的问题是:.NET 应用程序有没有办法只添加对一个 DLL 的引用,而一切正常工作?
我一直在搜索谷歌和 SO,但无济于事......
编辑:mergebin 似乎最接近我正在寻找的内容,但它只能将 .NET DLL 与一个本机 DLL 合并。可惜不能合并原生 DLL。
【问题讨论】: