Czy mogę opublikować prywatny pakiet NuGet?

107

Mam zespół, który wykonałem, który jest bardzo specyficzny dla mojego zespołu w mojej firmie. Chcę mieć możliwość korzystania z narzędzia NuGet, aby ten zestaw był dostępny dla innych projektów, nad którymi pracuje mój zespół i podobne zespoły w mojej firmie. Jednak zespół nie jest tak naprawdę kodem, którym chcę się podzielić ze światem.

Wiem, że dzięki Mavenowi możesz tworzyć lokalne repozytoria i pakiety źródłowe z lokalnego repozytorium. Czy NuGet obsługuje podobne funkcje? Czy istnieje sposób z NuGet, aby określić lokalne repozytorium lub mieć prywatne pakiety?

stevebot
źródło

Odpowiedzi:

92

Tak! Możesz hostować własny serwer NuGet!

Najłatwiejszym sposobem jest utworzenie folderu współdzielonego na serwerze i odwołanie się do niego jako serwera Nuget.

Więcej informacji o tym, jak to zrobić, znajdziesz na: Hosting Your Own NuGet Feeds

Glauco Vinicius
źródło
3
Korzystając z powyższego łącza, przewiń w dół do sekcji „Tworzenie zdalnych źródeł”, jeśli chcesz utworzyć rzeczywisty serwer, dostępny przez HTTP, do hostowania zestawów.
Kevin Kalitowski
6
Chociaż jest to prawdopodobnie najłatwiejszy sposób, oznacza to, że musisz udostępnić folder wszystkim, a każdy, kto ma dostęp, może (przypadkowo lub nie) złagodzić jego zawartość. Lepszym sposobem (ale prostym) jest utworzenie własnego serwera przy użyciu NuGet.Serveri do hostowania w usługach IIS lub Azure. Będziesz wtedy mógł wypychać pakiety za pomocą klucza API i każdy może subskrybować źródło. Oto prosty przewodnik dotyczący tworzenia własnego serwera NuGet .
Alex Sanséau
Działał jak urok!
Andro
Miałem ten sam problem. i znalazłem następujące: Scott: hanselman.com/blog/… także: nicolaiarocci.com/…
Michael Mittermair
21

Inną opcją hostowania własnego serwera NuGet jest użycie JetBrains TeamCity jako serwera kompilacji. Konfiguracja jest opisana tutaj .

Serwer Team City działa jako repozytorium NuGet, które byłoby / mogłoby / powinno być dostępne tylko w Twojej firmie.

W zależności od sposobu użytkowania dostępne są bezpłatne wersje oprogramowania.

Ma kilka fajnych opcji, takich jak możliwość publikowania nowej wersji NuGet na żądanie, z każdą nową kompilacją ciągłej integracji itp. Jednym z najbardziej przydatnych bitów (podobnie jak w przypadku wszystkich implementacji serwera NuGet) jest to, że zachowa dziesiątki starszych wersji zestawów, więc jeśli masz jeden projekt, który musi odwoływać się do najnowszej wersji, i inny projekt, który musi odwoływać się do starszej wersji, wszystko się ułoży.

Kevin Kalitowski
źródło
2
Chociaż masz rację, TeamCity ma bardzo niewiele wspólnego z NuGet na powiedzenie, a istnieją inne opcje dla serwera NuGet (o co prosi). TeamCity jest raczej ciągła integracja serwera, że dzieje się mieć wbudowany serwer Nuget.
Jim Aho
14

Sprawdź bezpłatną edycję ProGet ; zbudowaliśmy go właśnie w tym celu. Konfiguracja zajmuje znacznie mniej czasu i oferuje wiele funkcji wykraczających poza te oferowane przez standardowy serwer NuGet, takich jak wiele źródeł danych, agregacja kanałów i dodatkowe typy repozytoriów (npm, Bower itp.)

Jeśli chcesz zapłacić za wersję Enterprise, otrzymujesz również możliwość korzystania z LDAP do uwierzytelniania oraz możliwość filtrowania kanałów po nazwie / licencji z podłączonych źródeł (czyli oficjalnego kanału NuGet).

Tod Hoven
źródło
2

Tak, możesz mieć lokalne kanały. Konfiguracja jest bardzo prosta, spójrz tutaj .

MyGet jest popularny do hostowania prywatnych kanałów. To nie jest darmowe, ale spójrz na ich ceny i może Ci odpowiada!

Jim Aho
źródło