托管自己的 NuGet 资源库
你可能希望仅向有限的受众(如组织或工作组)发布包,而不是公开发布包。 此外,一些公司可能希望限制其开发人员可以使用的第三方库,从而引导这些开发人员从有限的包源而不是 nuget.org 进行绘制。
出于所有这些目的,NuGet 支持通过以下方式设置专用包源:
- 本地源:包只是放置在合适的网络文件共享上,理想情况下使用
nuget init
和nuget add
来创建分层文件夹结构(NuGet 3.3+)。 有关详细信息,请参阅 本地源。 - NuGet.Server:通过本地 HTTP 服务器提供包。 有关详细信息,请参阅 NuGet.Server。
- NuGet 画廊:使用 NuGet 画廊项目(github.com)在 Internet 服务器上托管包。 NuGet Gallery 提供用户管理功能,并具有完善的 Web 用户界面,允许从浏览器中搜索和浏览包,与 nuget.org 类似。
还有其他几个 NuGet 托管产品,例如 Azure Artifacts,以及支持远程专用源的 GitHub 包注册表。 下面是此类产品的列表:
- 来自 JFrog 的 Artifactory。
- Azure Artifacts,在 Team Foundation Server 2017 及更高版本上也可用。
- BaGet,这是基于 ASP.NET Core 构建的 NuGet V3 服务器的开源实现
- BaGetter,一个开源和社区驱动的 BaGet 分支
- Bytesafe 完全托管的包和供应链安全平台
- Cloudsmith,完全托管的软件包管理SaaS
- Feedz.io 完全托管的包管理 SaaS
- Gitea,开源的自承载 Git 服务支持 NuGet 作为 包注册表
- GitHub 包注册表
- GitLab 包注册表
- JetBrains Space
- LiGet,在 docker 中 kestrel 上运行的 NuGet V2 服务器的开源实现
- MyGet
- Sonatype 的 Nexus OSS 仓库。
- NuGet 服务器(开源),类似于 Inedo 的 NuGet Server 的开源实现
- NuGet Server,Inedo 的一个社区项目
- 来自 Inedo 的 ProGet
- Sleet,一个开源 NuGet V3 静态源生成器
- JetBrains 的 TeamCity。
- RepoFlow,这是一个简单易用的包管理平台。
无论包的托管方式如何,都可以通过将包添加到 NuGet.Config
中的可用源列表来访问它们。 这可以在 Visual Studio 中完成,如 包源中所述,也可以使用 nuget sources
从命令行执行此作。 源的路径可以是本地文件夹路径名称、网络名称或 URL。