我有一个要公开给 .NET 应用程序的 C++ DLL(无代码)。
在考虑了我拥有/知道/可以找到的所有选项(COM、P/Invoke、SWIG 等)之后,我正在编写一个 .NET 类库(在 C++/CLI 中)。现在生成的 DLL(类库)也需要原始 DLL 及其依赖项。我的问题在于自动跟踪此类事情,以便使用包装器的应用程序不必跟踪其他( native )DLL(特别是如果原始 DLL 开发了新的依赖项)。
更准确地说(有一些具体的东西要讨论),我试图包装cmr
,所以我写了MR
,类库(取决于cmr
,当然)。 cmr
依赖于 PNL
、OpenCV
等。当我尝试在 (C#) 项目中添加对 MR
的引用时,Visual Studio (2005 SP1) 只是复制了 MR.DLL
,留下所有依赖项,然后提示(抛出关于丢失模块的 FileNotFoundException
)。手动将 cmr
、PNL
等复制到 bin
目录可解决问题。
事不宜迟,我的问题是:有没有一种方法可以让 .NET 应用程序只添加对一个 DLL 的引用,并且一切都正常工作?
我一直在通过 Google 和 SO 进行搜索,但无济于事......
编辑:mergebin 似乎与我正在寻找的最接近,但它只能将 .NET DLL 与一个 native DLL 合并。太糟糕了,不能合并 native DLL。
最佳答案
你可以看看mergebin ,一种允许您将非托管和托管 DLL 组合到一个程序集中的工具。 System.Data.SQLite使用这种方法。
关于c# - 跟踪用于将 native C++ DLL 包装到 .NET 的 DLL 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764898/