c# - 跟踪用于将 native C++ DLL 包装到 .NET 的 DLL 依赖项

标签 c# dll interop c++-cli

我有一个要公开给 .NET 应用程序的 C++ DLL(无代码)。

在考虑了我拥有/知道/可以找到的所有选项(COM、P/Invoke、SWIG 等)之后,我正在编写一个 .NET 类库(在 C++/CLI 中)。现在生成的 DLL(类库)也需要原始 DLL 及其依赖项。我的问题在于自动跟踪此类事情,以便使用包装器的应用程序不必跟踪其他( native )DLL(特别是如果原始 DLL 开发了新的依赖项)。

更准确地说(有一些具体的东西要讨论),我试图包装cmr,所以我写了MR,类库(取决于cmr,当然)。 cmr 依赖于 PNLOpenCV 等。当我尝试在 (C#) 项目中添加对 MR 的引用时,Visual Studio (2005 SP1) 只是复制了 MR.DLL,留下所有依赖项,然后提示(抛出关于丢失模块的 FileNotFoundException)。手动将 cmrPNL 等复制到 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/

相关文章:

c# - 动态类(class)结构为每月的每一天举办事件

c# - 管理图像?

c# - 通过 WebClient 请求 JSON 返回 URL 抛出异常

c# - 如何在启用 COM 互操作的 DLL 中引用 WCF 服务?

c# - 在谷歌地图上绘制多个标记

c# - 如何从 C# 调用带有结构指针参数的 C++ 函数?

dll - 如何在不安装 Office 的情况下使用安装程序注册 ACEDAO.DLL?

javascript - HTTP POST 响应在字母之间返回 '\u0' 个字符,如何删除这些字符或在 JavaScript 中解析它们?

c# - C# 对 native 互操作的限制

C# 编码 bool