Kann ich ein privates NuGet-Paket veröffentlichen?

107

Ich habe eine Montage, die ich gemacht habe und die sehr spezifisch für mein Team in meiner Firma ist. Ich möchte NuGet verwenden können, um diese Baugruppe für andere Projekte verfügbar zu machen, an denen mein Team und ähnliche Teams in meinem Unternehmen arbeiten. Die Assembly ist jedoch kein Code, den ich mit der Welt teilen möchte.

Ich weiß, dass Sie mit Maven lokale Repositorys und Quellpakete aus einem lokalen Repo erstellen können. Unterstützt NuGet ähnliche Funktionen? Gibt es mit NuGet eine Möglichkeit, entweder ein lokales Repository anzugeben oder private Pakete zu haben?

Stevebot
quelle

Antworten:

92

Ja! Sie können Ihren eigenen NuGet-Server hosten!

Am einfachsten ist es, einen freigegebenen Ordner auf Ihrem Server zu erstellen und diesen als Ihren Nuget-Server zu bezeichnen.

Weitere Informationen dazu finden Sie unter: Hosting Your Own NuGet Feeds

Glauco Vinicius
quelle
3
Scrollen Sie unter dem obigen Link zum Abschnitt "Erstellen von Remote-Feeds", wenn Sie einen tatsächlichen Server erstellen möchten, auf den über HTTP zugegriffen werden kann, um Ihre Assemblys zu hosten.
Kevin Kalitowski
6
Obwohl dies wahrscheinlich der einfachste Weg ist, bedeutet dies, dass Sie den Ordner für alle freigeben müssen und jeder, der Zugriff hat, (aus Versehen oder nicht) mit seinem Inhalt in Konflikt geraten kann. Eine bessere (und dennoch einfache) Möglichkeit besteht darin, einen eigenen Server mit NuGet.ServerIIS oder Azure zu erstellen und zu hosten. Sie können dann Pakete mit einem API-Schlüssel pushen und jeder kann den Feed abonnieren. Hier finden Sie eine einfache Anleitung zum Erstellen Ihres eigenen NuGet-Servers .
Alex Sanséau
Lief wie am Schnürchen!
Andro
Ich hatte das gleiche Problem. und fand folgendes: Scott: hanselman.com/blog/… auch: nicolaiarocci.com/…
Michael Mittermair
21

Eine weitere Option zum Hosten Ihres eigenen NuGet-Servers ist die Verwendung von JetBrains TeamCity als Build-Server. Das Setup wird hier beschrieben .

Der Team City-Server fungiert als NuGet-Repository, auf das nur in Ihrem Unternehmen zugegriffen werden kann / könnte / sollte.

Abhängig von Ihrer Nutzung gibt es kostenlose Versionen der Software.

Es bietet einige nützliche Optionen, z. B. die Möglichkeit, bei Bedarf eine neue NuGet-Version bei jedem neuen Build für die kontinuierliche Integration zu veröffentlichen usw. Eines der nützlichsten Elemente (wie bei allen NuGet-Server-Implementierungen) ist, dass Dutzende älterer Versionen beibehalten werden Wenn Sie also ein Projekt haben, das auf die neueste Version verweisen muss, und ein anderes Projekt, das auf eine ältere Version verweisen muss, funktioniert alles.

Kevin Kalitowski
quelle
2
Obwohl Sie Recht haben, hat TeamCity sehr wenig mit NuGet zu tun, und es gibt andere Optionen für einen NuGet-Server (was er verlangt). Teamcity ist vielmehr eine kontinuierliche Integration Server, geschieht über einen eingebauten in NuGet Server.
Jim Aho
14

Schauen Sie sich die kostenlose ProGet-Edition an . Wir haben es genau für diesen Zweck gebaut. Die Einrichtung nimmt viel weniger Zeit in Anspruch und bietet viele Funktionen, die über die vom Standard-NuGet-Server angebotenen Funktionen hinausgehen, z. B. mehrere Feeds, Feed-Aggregation und zusätzliche Repository-Typen (npm, Bower usw.).

Wenn Sie für die Unternehmensversion bezahlen möchten, können Sie auch LDAP für die Authentifizierung verwenden und Feeds nach Namen / Lizenz aus verbundenen Feeds (dh dem offiziellen Feed von NuGet) filtern.

Tod Hoven
quelle
2

Ja, Sie können lokale Feeds haben. Die Einrichtung ist kinderleicht. Schauen Sie hier .

MyGet ist beliebt für das Hosten privater Feeds. Es ist nicht kostenlos, aber sehen Sie sich die Preise an und vielleicht passt es Ihnen gut!

Jim Aho
quelle