Размещение своих веб-каналов NuGet

Вместо того, чтобы делать пакеты общедоступными, вам может потребоваться выпустить их лишь для ограниченного круга пользователей, например вашей организации или рабочей группы. Кроме того, некоторым организациям может потребоваться ограничить доступные их разработчикам сторонние библиотеки, то есть предоставить в их распоряжение ограниченный источник пакетов, а не весь сайт nuget.org.

Для этого NuGet позволяет настроить частные источники пакетов одним из следующих способов:

  • Локальный веб-канал: пакеты просто помещаются в подходящую сетевую общую папку. Оптимальнее всего для этого использовать nuget init и nuget add, чтобы создать иерархическую структуру папок (NuGet 3.3+). Дополнительные сведения см. в разделе Локальные веб-каналы.
  • NuGet.Server: пакеты предоставляются через локальный HTTP-сервер. Дополнительные сведения см. в разделе NuGet.Server.
  • Коллекция NuGet: пакеты размещаются на интернет-сервере с помощью проекта коллекции NuGet (github.com). Коллекция NuGet позволяет управлять пользователями и предоставляет такие функции, как расширенный пользовательский веб-интерфейс, позволяющий искать и просматривать пакеты с помощью браузера, аналогично nuget.org.

Существует также несколько других продуктов размещения NuGet, таких как Azure Artifacts и реестр пакетов GitHub, поддерживающих удаленные частные каналы. Ниже приведен список таких продуктов.

  • Artifactory от JFrog.
  • Azure Artifacts, доступные также в Team Foundation Server 2017 и более поздних версий.
  • BaGet — реализация для сервера NuGet V3 с открытым кодом на платформе ASP.NET Core
  • Bytesafe A полностью управляемая платформа безопасности пакета и цепочки поставок
  • Cloudsmith, полностью управляемое решение для управления пакетами, поставляемое по модели SaaS
  • Feedz.io полностью управляемое управление пакетами SaaS
  • Gitea, локальная служба Git с открытым исходным кодом поддерживает NuGet в качестве реестра пакетов.
  • Реестр пакетов GitHub
  • Реестр пакетов GitLab
  • Пространство JetBrains
  • LiGet — реализация с открытым исходным кодом для сервера NuGet V2, на котором выполняется Kestrel в Docker
  • MyGet
  • Nexus Repository OSS от Sonatype.
  • Сервер NuGet (открытый исходный код) — реализация, аналогичная серверу NuGet от Inedo, с открытым исходным кодом
  • Сервер NuGet — проект сообщества от Inedo
  • ProGet от Inedo
  • Sleet —статический генератор веб-канала NuGet V3 с открытым исходным кодом.
  • TeamCity от JetBrains.

Независимо от способа размещения пакетов доступ к ним осуществляется путем добавления их в список доступных источников в NuGet.Config. Это можно сделать в Visual Studio, как описано в разделе Источники пакетов, или из командной строки с помощью nuget sources. Путь к источнику может быть путем к локальной папке, сетевым именем или URL-адресом.