【问题标题】:Merge unmanaged and managed dlls into single dll in DotNet将非托管和托管 dll 合并为 DotNet 中的单个 dll
【发布时间】:2016-04-12 10:50:08
【问题描述】:

我正在 dotnet 中开发移动 SDK。我需要将多个 dll 合并到单个 dll 中

请在下面找到详细信息 合并基于相同 .NET 语言构建的 dll 合并非托管和托管程序集(.TLB、.LIB) 合并引用非托管程序集的 dll 其中一个 Dll 正在使用 OpenSSL 库。

请提供合并dll的工具信息

【问题讨论】:

  • 为什么需要这么奇怪的行为? .NET 不是为创建托管代码而设计的,因此您不能将托管代码和非托管代码组合到一个程序集中。您当然可以将对托管函数的调用包装到托管代码中,但是您需要引用该非托管库。
  • 嗨 HimBromBeere,我们有多个 dll,例如 VC++、运行时 dll 和托管 dll。目前,我正在使用 Vitevic 嵌入器将非托管到托管的 dll 嵌入并使用 ILMerge 将多个 dll 合并到一个 DLL 中。但它不能正常工作。合并的 dll 的大小非常小。请让我知道是否有合并多个 dll 的方法。我们想用单个 dll 来证明客户端进行部署。
  • 您对 BxILMerge 有何看法?它应该对你有所帮助。

标签: c# c++ .net dll merge


【解决方案1】:

BxILMerge 能够将非托管 DLL 与托管 DLL 合并。此外,它还可以使用托管 DLL 拍摄图像、视频、数据库等 sush 文件。此决定基于 ILMerge+BoxedApp。我加了一个GitHub的链接,有一个使用这个工具的例子。

【讨论】:

    【解决方案2】:

    您可以使用ILMerge 来合并您的所有托管代码。但是,就我而言,您不能将托管和非托管代码放在一个程序集中。

    【讨论】:

    • 嗨 Chathuranga,我们有多个 dll,例如 VC++、运行时 dll 和托管 dll。目前,我正在使用 Vitevic 嵌入器将非托管到托管的 dll 嵌入并使用 ILMerge 将多个 dll 合并到一个 DLL 中。但它不能正常工作。合并的 dll 的大小非常小。请让我知道是否有合并多个 dll 的方法。我们想用单个 dll 来证明客户端进行部署。
    猜你喜欢
    • 2019-03-31
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多