Могу ли я опубликовать частный пакет NuGet?

107

У меня есть сборка, которая очень специфична для моей команды в моей компании. Я хочу иметь возможность использовать NuGet, чтобы сделать эту сборку доступной для других проектов, над которыми работают моя команда и аналогичные группы в моей компании. Однако сборка - это не совсем код, которым я хочу поделиться с миром.

Я знаю, что с помощью Maven вы можете создавать локальные репозитории и пакеты с исходным кодом из локального репо. Поддерживает ли NuGet аналогичную функциональность? Есть ли способ с помощью NuGet указать либо локальный репозиторий, либо иметь частные пакеты?

стивбот
источник

Ответы:

92

Да! Вы можете разместить свой собственный сервер NuGet!

Самый простой способ - создать общую папку на вашем сервере и указать ее как свой сервер Nuget.

Дополнительную информацию о том, как это сделать, можно найти по адресу: Размещение собственных каналов NuGet.

Глауко Винисиус
источник
3
По ссылке выше прокрутите вниз до раздела «Создание удаленных каналов», если вы хотите создать реальный сервер, доступный через HTTP, для размещения ваших сборок.
Кевин Калитовски
6
Хотя это, вероятно, самый простой способ, это означает, что вы должны предоставить общий доступ к папке всем, и любой, у кого есть доступ, может (случайно или нет) вмешиваться в ее содержимое. Лучший способ (но простой способ) - создать собственный сервер, используя NuGet.ServerIIS или Azure, и разместить его в нем. После этого вы сможете отправлять пакеты с помощью ключа API, и любой сможет подписаться на канал. Вот простое руководство по созданию собственного сервера NuGet .
Alex Sanséau
Работал как шарм!
Andro
У меня такая же проблема. и нашел следующее: Скотт: hanselman.com/blog/… также: nicolaiarocci.com/…
Майкл Миттермайр
21

Другой вариант размещения вашего собственного сервера NuGet - использовать JetBrains TeamCity в качестве сервера сборки. Настройка описана здесь .

Сервер Team City действует как репозиторий NuGet, который будет / может / должен быть доступен только внутри вашей компании.

В зависимости от вашего использования существуют бесплатные версии программного обеспечения.

У него есть несколько приятных опций, таких как возможность публиковать новую версию NuGet по запросу, с каждой новой сборкой непрерывной интеграции и т. Д. Один из наиболее полезных моментов (как и во всех реализациях сервера NuGet) заключается в том, что он будет хранить десятки старых версий. ваших сборок, поэтому, если у вас есть один проект, который должен ссылаться на новейшую версию, и другой проект, который должен ссылаться на более старую версию, все будет работать.

Кевин Калитовски
источник
2
Хотя вы правы, TeamCity, по сути, имеет очень мало общего с NuGet, и есть другие варианты для сервера NuGet (что он и просит). TeamCity скорее непрерывный сервер интеграции , который происходит , чтобы иметь встроенный сервер NuGet.
Джим Ахо,
14

Проверьте ProGet бесплатную версию ; мы построили его именно для этого. Установка занимает гораздо меньше времени и предлагает множество функций, выходящих за рамки тех, что предлагаются стандартным сервером NuGet, например, несколько каналов, агрегирование каналов и дополнительные типы репозиториев (npm, Bower и т. Д.)

Если вы хотите заплатить за корпоративную версию, вы также получаете возможность использовать LDAP для аутентификации и возможность фильтровать каналы по имени / лицензии из подключенных каналов (например, официальный канал NuGet).

Тод Ховен
источник
2

Да, у вас могут быть местные каналы. Его очень просто настроить, посмотрите здесь .

MyGet популярен для размещения частных каналов. Это не бесплатно, но взгляните на их цены, и, возможно, они вам подходят!

Джим Ахо
источник