如何分发 .NET 库

How to distribute a .NET library

我的组织正在发布一个 SDK,以帮助 .NET 开发人员更轻松地与我们的 API 进行交互。我们希望支持正确的分发选项以满足开发人员的需求。

现在分发 .NET 库有哪些选择?每种分销渠道的优缺点是什么?

一个好方法是源代码版本控制。将源代码保存在您的服务器上,并授权您的客户在他们的项目中检索和编译该库。

AFAICT 最流行的方法是下载已编译的 DLL/NuGet,尽管拥有源代码对于开发和调试更有意义。

NuGet 是迄今为止最方便的库选项。与独立的 DLL 不同,它可以很容易地更新(并带有更新通知),它的依赖项会自动引入(这避免了 "I have 40 DLLs in my libs/ folder, which ones do I actually need?" 问题),并且对于 VCS 来说更容易(没有二进制文件占用 space ).

您还可以发布符号包,如 here 所述,以帮助开发人员调试使用您的库的代码。
一些包作者 (Microsoft included) 甚至发布了 "samples" 个包来展示如何使用他们的包。
另一种简化文档的选择是让您的包在下载时自动打开其文档网站,using PowerShell.

看在上帝的份上,请不要强迫开发人员使用在系统上复制文件的实际安装程序来安装您的 SDK,除非您绝对必须这样做。