【问题标题】:C# How to Package(encapsulate) class library that reference third party dlls ?C# 如何打包(封装)引用第三方 dll 的类库?
【发布时间】:2016-04-19 11:48:24
【问题描述】:

我有一个引用第三方 dll 的类库项目。但是当我在其他项目(开发人员)中将我的类库作为第三方(dll)引用时,他们得到了一个错误。无法加载文件或程序集“我的类库项目引用的第三方 dll”。 我的需要是我想单独给其他人我的类库 dll,而不给他们它所依赖的 dll。我怎样才能做到这一点?

【问题讨论】:

  • 简单的答案是:你不能,你也必须以某种方式提供这些参考资料。如果您真的不想提供单独的 DLL,那么一种选择是将不同的程序集 (dll) 合并​​到一个文件 using ILMerge as described in this Code Project article 中。但也要注意其他第 3 方的许可(因为您可能不被允许这样做!)
  • 你的意思是我不能这样做

标签: c# .net dll class-library


【解决方案1】:

如果您的 DLL 依赖于其他一些 DLL,您可以单独分发您的 DLL,但如果不添加正确的依赖项,任何人都无法使用它。

这就是 Nuget 所做的。您在编译 DLL 时考虑到特定的 Nuget 包。仅分发您的 DLL,并告诉您的 DLL 用户添加正确的 Nuget 包。

【讨论】:

  • 您好,感谢您的帮助,但我不希望我的用户安装引用的 dll,我只希望他们引用我的 dll
  • 那么你就得看@bassfader 的答案了。将 DLL 合并为一个或释放您自己依赖的 dll。在这两种情况下,您都需要检查两者的许可协议,以确保您被允许这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多