C# 如何分发.NET库

C# 如何分发.NET库,c#,.net,sdk,C#,.net,Sdk,我的组织正在发布SDK,以帮助.NET开发人员更轻松地与我们的API交互。我们希望支持正确的分发选项,以满足开发人员的需求 现在有哪些选项可以分发.NET库?每个分销渠道的优缺点是什么?一个好方法是源代码版本控制。将源代码保存在服务器上,并授权客户端在其项目中检索和编译库 AFAICT最流行的方法是下载编译过的DLL的/NuGet,尽管拥有源代码对于开发和调试来说更有意义。NuGet是迄今为止最方便的库选项。与独立DLL不同,它可以很容易地进行更新(并带有更新通知),它的依赖项会自动拉入(这避免

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


现在有哪些选项可以分发.NET库?每个分销渠道的优缺点是什么?

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


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

NuGet是迄今为止最方便的库选项。与独立DLL不同,它可以很容易地进行更新(并带有更新通知),它的依赖项会自动拉入(这避免了“我的libs/文件夹中有40个DLL,我实际上需要哪些DLL?”的问题),而且对VCS来说更容易(没有二进制文件占用空间)

如前所述,您还可以发布符号包,以帮助开发人员调试使用您的库的代码。
一些软件包作者()甚至发布“示例”软件包,展示如何使用他们的软件包。
简易文档的另一个选择是让您的软件包在下载时自动打开其文档网站


出于对所有神圣事物的热爱,请不要强迫开发人员使用复制系统上文件的实际安装程序安装SDK,除非您必须这样做。

没有“推荐”的方法。如果它是一个免费的图书馆,我认为NuGet作为一个分销渠道是非常好的。您还应该提供通过您的网站下载预构建的DLL,但我会首先引导人们使用NuGet软件包,因为它可以轻松更新。@RonBeyer-谢谢!听起来是个不错的建议。我的问题已被编辑为不太基于意见。我会将源代码保存在一个单独的服务器上,比如GitHub。通过这种方式,可以很容易地通过开放客户端获得源代码。“您的服务器”不一定是您自己的内部服务器。听起来,如果我们要提供DLL,我们希望阻止这种途径,并鼓励使用NuGet。对吗?我喜欢发布一个“示例”包来显示包的使用情况。@JimmyZ:是的,如果您想提供DLL,应该将其视为无法使用NuGet的人的后备方案。这也会帮助你;更容易解释如何检查更新,并且您会得到较少的开发人员抱怨来自旧版本的bug。