Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nachdem Sie ein NuGet-Paket erstellt haben und über eine nupkg-Datei verfügen, können Sie das Paket für andere Entwickler öffentlich oder privat zur Verfügung stellen. In diesem Artikel wird beschrieben, wie öffentliche Pakete global über nuget.org freigegeben werden.
Sie können private Pakete auch nur für ein Team oder eine Organisation verfügbar machen, indem Sie sie auf einer Dateifreigabe, einem privaten NuGet-Server oder einem Drittanbieter-Repository wie myget, ProGet, Nexus Repository oder Artifactory hosten. Weitere Informationen finden Sie unter Hosten Eigener NuGet-Feeds. Informationen zum Veröffentlichen mit Azure Artifacts finden Sie unter Veröffentlichen von Paketen in NuGet.org.
In nuget.org veröffentlichen
Um auf nuget.org zu veröffentlichen, melden Sie sich mit einem Microsoft-Konto bei nuget.org an, und verwenden Sie es, um ein kostenloses nuget.org Konto zu erstellen. Folgen Sie den Anweisungen unter "Neues individuelles Konto hinzufügen".
Sobald Sie über ein Konto verfügen, können Sie ein Paket auf nuget.org veröffentlichen, indem Sie das nuget.org Webportal, die dotnet CLI oder die NuGet CLI Version 4.1.0 oder höher verwenden. Sie können Pakete auch über Azure-Pipelines veröffentlichen.
Hochladen in das nuget.org-Webportal
So laden Sie ein Paket auf die nuget.org Website hoch:
Wählen Sie " Hochladen" im oberen Menü unter nuget.org aus, navigieren Sie zum Paket auf Ihrem Computer, und wählen Sie "Öffnen" aus.
Wenn die Paket-ID bereits auf nuget.org vorhanden ist, wird ein Fehler angezeigt. Ändern Sie den Paketbezeichner in Ihrem Projekt, packen Sie es erneut, und versuchen Sie es erneut.
Wenn der Paketname verfügbar ist, wird der Abschnitt "Überprüfen " geöffnet, damit Sie die Metadaten aus dem Paketmanifest überprüfen können. Wenn Sie eine Infodatei in Ihr Paket eingefügt haben, wählen Sie "Vorschau" aus, um sicherzustellen, dass alle Inhalte ordnungsgemäß gerendert werden.
Wenn Sie eine der Metadaten ändern möchten, bearbeiten Sie die Projektdatei oder die .nuspec-Datei, erstellen Sie das Projekt neu, verpacken Sie es erneut und laden Sie es wieder hoch.
Wenn alle Informationen bereit sind, wählen Sie "Absenden" aus.
Push mithilfe einer Befehlszeile
Um Pakete mit einer Befehlszeile an nuget.org zu übertragen, können Sie entweder dotnet.exe oder nuget.exe v4.1.0 oder höher verwenden, die die erforderlichen NuGet-Protokolle implementieren. Weitere Informationen finden Sie unter NuGet-Protokolle.
Um eine der beiden Befehlszeilen zu verwenden, müssen Sie zuerst einen API-Schlüssel aus nuget.org abrufen.
Erstellen eines API-Schlüssels
Melden Sie sich bei Ihrem nuget.org-Konto an, oder erstellen Sie ein Konto , wenn Sie noch kein Konto haben.
Wählen Sie oben rechts Ihren Benutzernamen und dann API-Schlüssel aus.
Wählen Sie "Erstellen" aus, und geben Sie einen Namen für Ihren Schlüssel an.
Unter "Bereich auswählen", wählen Sie die Option Push aus.
Geben Sie unter "Pakete auswählen>Glob-Muster" *ein.
Wählen Sie "Erstellen" aus.
Wählen Sie "Kopieren" aus, um den neuen Schlüssel zu kopieren.
Von Bedeutung
- Bewahren Sie ihren API-Schlüssel immer als geheim auf. Der API-Schlüssel ist wie ein Kennwort, mit dem jeder Pakete in Ihrem Auftrag verwalten kann. Löschen oder regenerieren Sie Ihren API-Schlüssel, wenn er versehentlich angezeigt wird.
- Speichern Sie Ihren Schlüssel an einem sicheren Speicherort, da Sie den Schlüssel später nicht mehr kopieren können. Wenn Sie zur API-Schlüsselseite zurückkehren, müssen Sie den Schlüssel neu generieren, um ihn zu kopieren. Sie können den API-Schlüssel auch entfernen, wenn Sie keine Pushpakete mehr verschieben möchten.
Mithilfe von Scoping können Sie separate API-Schlüssel für unterschiedliche Zwecke erstellen. Jeder Schlüssel verfügt über einen Ablaufzeitrahmen, und Sie können den Schlüssel auf bestimmte Pakete oder Globmuster beschränken. Sie legen auch jeden Schlüssel auf bestimmte Vorgänge fest: Hochladen Sie neue Pakete und Paketversionen, hochladen Sie nur neue Paketversionen, oder nehmen Sie die Auflistung zurück.
Mithilfe der Bereichseinschränkung können Sie API-Schlüssel für verschiedene Personen erstellen, die Pakete für Ihre Organisation verwalten, sodass sie nur die erforderlichen Berechtigungen haben.
Weitere Informationen finden Sie unter bereichsbezogenen API-Schlüsseln.
Verwenden Sie die dotnet-CLI
Führen Sie im Ordner, der die NUPKG-Datei enthält, den folgenden Befehl aus. Geben Sie Ihren nupkg-Dateinamen an, und ersetzen Sie den Schlüsselwert durch Ihren API-Schlüssel.
dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json
Die Ausgabe zeigt die Ergebnisse des Veröffentlichungsprozesses an:
Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.
Weitere Informationen finden Sie unter dotnet nuget push.
Hinweis
Wenn Sie verhindern möchten, dass Ihr Testpaket auf nuget.org live geht, können Sie es auf der Testwebsite von nuget.org hochladen, https://int.nugettest.org. Beachten Sie, dass Pakete, die auf int.nugettest.org hochgeladen wurden, möglicherweise nicht gespeichert werden.
Verwenden Sie die NuGet-CLI
Führen Sie an einer Eingabeaufforderung den folgenden Befehl aus und ersetzen Sie
<your_API_key>durch den Schlüssel, den Sie von nuget.org erhalten haben.nuget setApiKey <your_API_key>Dieser Befehl speichert Ihren API-Schlüssel in Ihrer NuGet-Konfiguration, sodass Sie den API-Schlüssel nicht erneut auf demselben Computer eingeben müssen.
Hinweis
Dieser API-Schlüssel wird nicht für die Authentifizierung mit privaten Feeds verwendet. Informationen zum Verwalten von Anmeldeinformationen für die Authentifizierung mit diesen Quellen finden Sie im Befehl "Nuget sources".
Pushen Sie das Paket mithilfe des folgenden Befehls:
nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
Veröffentlichen mit Azure-Pipelines
Sie können Pakete an nuget.org mit Azure-Pipelines als Teil Ihres kontinuierlichen Integrations-/kontinuierlichen Bereitstellungsprozesses (CI/CD) übertragen. Weitere Informationen finden Sie unter Veröffentlichen von NuGet-Paketen mit Azure-Pipelines.
Veröffentlichen eines signierten Pakets
Um ein signiertes Paket zu übermitteln, müssen Sie zuerst das Zertifikat registrieren , das Sie zum Signieren des Pakets verwendet haben. Wenn Sie die anforderungen des signierten Pakets nicht erfüllen, lehnt nuget.org das Paket ab.
Paketgrößenbeschränkungen
Nuget.org hat eine Paketgröße von ca. 250 MB. Wenn ein Paket, das diesen Grenzwert überschreitet, hochgeladen wird, wird der folgende Fehler angezeigt:
Die Paketdatei überschreitet den Größengrenzwert. Versuchen Sie es bitte erneut.
Wenn ein solches Paket über die Befehlszeile verschoben wird, wird die folgende Ausgabe erzeugt:
RequestEntityTooLarge https://www.nuget.org/api/v2/package/ 13903ms
error: Response status code does not indicate success: 413 (The package file exceeds the size limit. Please try again.).
Wenn Sie diese Fehler erhalten, sollten Sie den Paketinhalt überarbeiten, um seine Größe zu verringern. Wenn Sie Debugsymbole in Ihr Paket packen, sollten Sie sie separat veröffentlichen. Andere Ressourcen können separat als ein oder mehrere Abhängigkeitspakete veröffentlicht werden, um sie in kleinere Abschnitte zu verteilen.
Paketüberprüfung und Indizierung
Pakete, die auf nuget.org verschoben werden, werden mehreren Überprüfungen unterzogen, z. B. Virenprüfungen, und vorhandene Pakete werden regelmäßig gescannt. Wenn das Paket alle Validierungsprüfungen besteht, könnte es eine Weile dauern, bis es indexiert und in Suchergebnissen angezeigt wird. Während das Paket indiziert wird, wird es unter "Nicht aufgelistete Pakete" angezeigt, und auf der Paketseite wird die folgende Meldung angezeigt:
Nach Abschluss der Überprüfung und Indizierung erhalten Sie eine E-Mail, dass das Paket erfolgreich veröffentlicht wurde. Wenn das Paket eine Überprüfung fehlschlägt, wird die Paketseite aktualisiert, um den zugehörigen Fehler anzuzeigen, und Sie erhalten eine Benachrichtigungs-E-Mail.
Die Paketüberprüfung und -indizierung dauert in der Regel weniger als 15 Minuten. Wenn die Paketveröffentlichung länger als erwartet dauert, überprüfen Sie nuget.org Status bei status.nuget.org. Wenn alle Systeme betriebsbereit sind und das Paket innerhalb einer Stunde nicht erfolgreich veröffentlicht wurde, wenden Sie sich über den Link "Support kontaktieren " auf der Paketseite an nuget.org.
Um den Paketstatus anzuzeigen, wählen Sie Pakete verwalten unter Ihrem Kontonamen oben rechts auf nuget.org aus, und wählen Sie das Paket aus Veröffentlichte Pakete oder Nicht aufgelistete Pakete aus.
Verwaltung der Paketbesitzer auf nuget.org
Paketbesitzer verfügen über vollständige Berechtigungen für das Paket, einschließlich des Hinzufügens und Entfernens anderer Besitzer und der Veröffentlichung von Updates.
Obwohl die NUSPEC-Datei des NuGet-Pakets die Autoren des Pakets definiert, verwendet nuget.org diese Metadaten nicht zum Definieren des Besitzes. Stattdessen weist nuget.org der Person, die das Paket veröffentlicht, Besitz zu, entweder dem angemeldeten Benutzer, der das Paket hochgeladen hat, oder dem Benutzer, dessen API-Schlüssel mit dotnet push, nuget SetApiKeyoder nuget pushverwendet wurde.
So ändern Sie den Besitz eines Pakets:
Melden Sie sich bei nuget.org mit dem Konto an, das derzeit das Paket besitzt.
Wählen Sie oben rechts Ihren Kontonamen aus, wählen Sie "Pakete verwalten" aus, und erweitern Sie "Veröffentlichte Pakete".
Wählen Sie das Paket aus, das Sie verwalten möchten, und wählen Sie auf der rechten Seite der Paketseite die Option "Paket verwalten" aus.
Wählen Sie auf der Seite "Paketverwaltung" die Option "Besitzer" aus.
Führen Sie eine der folgenden Aktionen aus:
Wählen Sie "Entfernen" aus, um den aktuellen Besitzer zu entfernen.
Fügen Sie unter " Besitzer hinzufügen " einen Besitzer hinzu, indem Sie ihren Benutzernamen und eine Nachricht eingeben und "Hinzufügen" auswählen.
Diese Aktion sendet eine E-Mail an den neuen Mitbesitzer mit einem Bestätigungslink. Nach der Bestätigung verfügt diese Person über vollständige Berechtigungen zum Hinzufügen und Entfernen von Besitzern. Bis zur Bestätigung zeigt der Abschnitt " Aktuelle Besitzer " die ausstehende Genehmigung für diese Person an.
Um den Besitz zu übertragen, fügen Sie den neuen Besitzer hinzu, wenn sich der Besitz ändert oder ein Paket unter dem falschen Konto veröffentlicht wird. Nachdem sie den Besitz bestätigt haben, können sie den alten Besitzer aus der Liste entfernen.
Um einem Unternehmen oder einer Gruppe Besitz zuzuweisen, erstellen Sie ein nuget.org Konto mit einem E-Mail-Alias, der an die entsprechenden Teammitglieder weiterleitet. Beispielsweise sind verschiedene Microsoft ASP.NET-Pakete gemeinschaftlich im Besitz von den Microsoft- und aspnet-Konten.
Gelegentlich verfügt ein Paket nicht über einen aktiven Besitzer. Beispielsweise könnte der ursprüngliche Besitzer das Unternehmen verlassen haben, das das Paket produziert hat. Wenn Sie der rechtmäßige Besitzer eines Pakets sind und den Besitz wiedererlangen müssen, verwenden Sie das Kontaktformular auf nuget.org, um Ihre Situation dem NuGet-Team zu erklären. Das Team folgt einem Prozess, um Ihren Besitz zu überprüfen, einschließlich des Versuchs, den aktuellen Besitzer zu ermitteln, und kann Ihnen eine neue Einladung senden, um der Paketbesitzer zu werden.