【问题标题】:How/where do I ship third-party libraries with a .NET DLL?如何/在哪里提供带有 .NET DLL 的第三方库?
【发布时间】:2010-11-19 01:01:14
【问题描述】:

我正在构建一个 .NET DLL 类库,它依赖于 log4net.dll 等其他库 - 在打包我的 DLL 时我应该将这些 DLL 放在哪里?有没有办法自动将它们包含在一个超级 DLL 中?我应该将所有 DLL 都放在一个 bin 文件夹中吗?

【问题讨论】:

    标签: c# .net dll packaging


    【解决方案1】:

    不确定您是如何部署解决方案的,但不要忘记,为了签署您的类库,您需要签署您的第 3 方 .dll。仅此一项就可能需要您合并所有引用。

    【讨论】:

      【解决方案2】:

      你应该看看ILMerge。我链接了一个显示 ILMerge 用法的博客

      Leveraging ILMerge to simplify deployment and your users experience

      【讨论】:

        【解决方案3】:

        只需将它们全部发送到包含您的 dll 的目录中(假设您正在谈论二进制分发 - 在源代码分发中,我将有一个包含您的依赖项的“lib”目录)。

        不要忘记检查您是否还需要提供许可证、获取源的说明等。

        我个人不会尝试将您的类库与依赖项合并。

        【讨论】:

        • 我实际上做了你在上一次声明中说不要做的事情。让我的项目看起来非常混乱和混乱,看起来与那个额外的来源。所以,我只是取消合并它们。 :)
        【解决方案4】:

        您需要首先检查附加到其他 DLL 的 EULA 和其他许可证。有些人可能会限制其 DLL 库的重新分发方式。假设没有问题,您可以将它们全部编译为一个大 DLL,或者创建一个安装程序(或一个简单的 zip 文件),将所有关联的 DLL 安装到它们的预期目标。

        【讨论】:

          【解决方案5】:

          在您的解决方案树中,为所有 yoru 源代码创建一个名为“src”的文件夹,为 log4net、您自制的 dll 库和任何其他库等库创建一个名为“lib”的文件夹。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-04-06
            • 1970-01-01
            • 1970-01-01
            • 2015-10-09
            • 2021-11-01
            • 2014-03-26
            • 2018-06-05
            • 1970-01-01
            相关资源
            最近更新 更多