Hosten eigener NuGet-Feeds
Möglicherweise möchten Sie Ihre Pakete nur für einen eingeschränkten Personenkreis freigeben, z.B. Ihre Organisation oder Arbeitsgruppe, anstatt diese öffentlich verfügbar zu machen. Darüber hinaus möchten einige Unternehmen ggf. vorgeben, welche Bibliotheken von Drittanbietern ihre Entwickler verwenden. Daher weisen diese die Entwickler an, auf eine spezielle Paketquelle zurückzugreifen, anstatt auf nuget.org.
Zu diesen Zwecken unterstützt NuGet das Einrichten privater Paketquellen auf folgende Arten:
- Lokaler Feed: Pakete werden einfach an einem passenden Netzwerkfreigabeort abgelegt. Idealerweise wurde mithilfe von
nuget init
undnuget add
eine hierarchische Ordnerstruktur angelegt (NuGet 3.3 und höher). Weitere Einzelheiten finden Sie unter Lokale Feeds. - NuGet.Server: Pakete werden über einen lokalen HTTP-Server verfügbar gemacht. Weitere Einzelheiten finden Sie unter NuGet.Server.
- NuGet-Katalog: Pakete werden mithilfe von NuGet Gallery Project (Projekt „NuGet-Katalog“) (github.com) auf einem Internet-Server gehostet. Der NuGet-Katalog bietet Benutzerverwaltung und diverse Funktionen, z.B. eine umfangreiche Webbenutzeroberfläche, die es ermöglicht, direkt im Browser nach Paketen zu suchen und sich diese näher anzusehen, ähnlich wie nuget.org.
Es gibt auch einige andere NuGet-Hostingprodukte wie Azure Artifacts und die GitHub-Paketregistrierung, die private Remotefeeds unterstützen. Im Folgenden werden diese Produkte aufgelistet:
- Artifactory von JFrog.
- Azure Artifacts, was auch auf Team Foundation Server 2017 und höher verfügbar ist.
- BaGet, eine Open Source-Implementierung von NuGet-V3-Server, die auf ASP.NET Core basiert
- BaGetter, eine open-source- und communitygesteuerte Fork von BaGet
- Bytesafe, eine vollständig verwaltete Plattform für Paket- und Lieferkettensicherheit
- Cloudsmith, eine vollständig verwaltete SaaS-Paketverwaltung
- Feedz.io, eine vollständig verwaltete SaaS-Paketverwaltung
- Gitea, ein Open-Source-, selbsthostbarer Git-Dienst unterstützt NuGet als Paketregistrierung
- GitHub-Paketregistrierung
- GitLab-Paketregistrierung
- JetBrains Space
- LiGet, eine Open Source-Implementierung von NuGet V2-Server, die unter Kestrel in Docker ausgeführt wird
- MyGet
- Nexus Repository OSS von Sonatype.
- NuGet Server (Open Source), eine Open-Source-Implementierung, die NuGet Server von Inedo ähnelt
- NuGet Server, ein Communityprojekt von Inedo
- ProGet von Inedo
- Sleet, ein statischer Open-Source-NuGet V3-Feedgenerator
- TeamCity von JetBrains.
Unabhängig davon, wie Pakete gehostet werden, können Sie auf diese zugreifen, indem Sie diese der Liste verfügbarer Datenquellen in NuGet.Config
hinzufügen. Dies kann in Visual Studio ausgeführt werden, wie im Absatz zum Thema Paketquellen beschrieben, oder über die Befehlszeile mithilfe von nuget sources
. Bei dem Pfad zu einer Datenquelle kann es sich um einen Pfadnamen für einen lokalen Ordner, um einen Netzwerknamen oder eine URL handeln.