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.
In dieser Schnellstartanleitung verwenden Sie Microsoft Visual Studio, um ein NuGet-Paket aus einer .NET Klassenbibliothek zu erstellen. Anschließend veröffentlichen Sie das Paket mithilfe eines Befehlszeilenschnittstellentools (CLI) auf nuget.org.
Diese Schnellstartanleitung richtet sich nur an Windows Benutzer. Wenn Sie eine andere Plattform verwenden, verwenden Sie die .NET CLI.
Voraussetzungen
Visual Studio 2026 mit einer .NET-bezogenen Arbeitslast.
Sie können die 2026 Community Edition kostenlos von visualstudio.microsoft.com installieren, oder Sie können die Professional- oder Enterprise-Edition verwenden.
Visual Studio 2017 und höher enthalten automatisch NuGet-Funktionen, wenn Sie eine .NET-bezogene Workload installieren.
Die .NET CLI.
Für Visual Studio 2017 und höher wird die .NET CLI automatisch mit jedem .NET-bezogenen Workload installiert. Sie können auch das .NET SDK installieren, um die .NET CLI abzurufen. Die .NET CLI ist für .NET Projekte erforderlich, die das Format SDK-format (und ein SDK-Attribut) verwenden. Die standardmäßige .NET-Klassenbibliotheksvorlage in Visual Studio 2017 und höher verwendet das SDK-Attribut.
Wichtig
Wenn Sie mit einem Projekt im Nicht-SDK-Stil arbeiten, befolgen Sie stattdessen die Verfahren in Paket mit Visual Studio (.NET Framework, Windows) erstellen und veröffentlichen, um das Paket zu erstellen und zu veröffentlichen. Für diesen Artikel wird die .NET CLI empfohlen. Obwohl Sie jedes NuGet-Paket mithilfe der NuGet CLI veröffentlichen können, sind einige der Schritte in diesem Artikel spezifisch für SDK-Formatprojekte und die .NET CLI. Die NuGet CLI wird für non-SDK-Style-Projekte (in der Regel .NET Framework-Projekte) verwendet.
Ein kostenloses Konto auf nuget.org. Sie müssen das Konto registrieren und bestätigen, bevor Sie ein NuGet-Paket hochladen können.
Die NuGet CLI. Sie können es installieren, indem Sie es von nuget.org herunterladen. Fügen Sie die Datei nuget.exe zu einem geeigneten Ordner hinzu und fügen Sie diesen Ordner zu Ihrer
PATHUmgebungsvariable hinzu.
Erstellen eines Klassenbibliotheksprojekts
Sie können ein vorhandenes .NET Klassenbibliotheksprojekt für den Code verwenden, den Sie packen möchten, oder Sie können ein Projekt erstellen, indem Sie die folgenden Schritte ausführen:
Wählen Sie in Visual Studio File>New>Project/Solution aus.
Wechseln Sie im Fenster " Neues Projekt erstellen " zum Suchfeld, und geben Sie die Klassenbibliothek ein.
Wählen Sie in der resultierenden Liste der Projektvorlagen die Vorlage " Klassenbibliothek " aus, die die folgenden Kriterien erfüllt:
- Enthält die Beschreibung A-Projekt zum Erstellen einer Klassenbibliothek, die auf .NET oder .NET Standard ausgerichtet ist
- Hat ein C# -Tag
Wählen Sie Weiteraus.
Geben Sie im Fenster Neues Projekt konfigurieren, für Projektname, AppLogger ein und wählen Sie dann Weiter aus.
Wählen Sie im Fenster "Zusätzliche Informationen " einen geeigneten Wert für Framework aus, und wählen Sie dann "Erstellen" aus.
Wenn Sie nicht sicher sind, welches Framework Sie auswählen möchten, ist die neueste Option eine gute Wahl und kann später problemlos geändert werden. Informationen darüber, welches Framework Sie verwenden sollten, finden Sie unter Wann
netx.0im Vergleich zunetstandardverwendet werden soll.(Optional) Für diese Schnellstartanleitung müssen Sie keinen zusätzlichen Code für das NuGet-Paket schreiben, da die Vorlagenklassenbibliothek zum Erstellen eines Pakets ausreicht. Wenn Sie dem Paket jedoch einen funktionalen Code hinzufügen möchten, schließen Sie den folgenden Code ein:
namespace AppLogger { public class Logger { public void Log(string text) { Console.WriteLine(text); } } }
Konfigurieren von Paketeigenschaften
Nachdem Sie Ihr Projekt erstellt haben, können Sie die NuGet-Paketeigenschaften konfigurieren, indem Sie die folgenden Schritte ausführen:
In Solution Explorer, wählen Sie Ihre project aus, und wählen Sie dann Project><project-name> Eigenschaften aus, wobei <project-name> der Name Ihres project ist.
Erweitern Sie den Knoten Package, und wählen Sie dann Allgemeinaus.
Der Knoten Package wird nur für SDK-Formatprojekte in Visual Studio angezeigt. Wenn Sie ein Projekt im Nicht-SDK-Stil anvisieren (in der Regel .NET Framework-Projekte), migrieren Sie das Projekt, oder lesen Sie Erstellen und veröffentlichen Sie ein Paket mit Visual Studio (.NET Framework, Windows) für Schritt-für-Schritt-Anleitungen.
Geben Sie Ihrem Paket für die Paket-ID eine eindeutige ID.
Wichtig
Sie müssen dem Paket einen Bezeichner zuweisen, der für den Host eindeutig ist, den Sie verwenden, z. B. nuget.org. Andernfalls tritt ein Fehler auf. Für diesen Schnellstart wird empfohlen, Beispiel oder Test in die ID aufzunehmen, da der Veröffentlichungsschritt das Paket öffentlich sichtbar macht. Weitere Informationen zum Auswählen einer ID finden Sie unter Bewährte Methoden für den Paketbezeichner.
Füllen Sie alle anderen gewünschten Eigenschaften aus. Bei Paketen, die für den öffentlichen Gebrauch erstellt wurden, achten Sie besonders auf die Tags-Eigenschaft , da Tags anderen helfen, Ihr Paket zu finden und zu verstehen, was es tut.
Alle Eigenschaften werden in das Manifest .nuspec eingefügt, das Visual Studio für das Projekt erstellt. Unter pack target finden Sie eine Tabelle, die zeigt, wie MSBuild-Eigenschaften in SDK-Formatprojekten .nuspec-Dateieigenschaften zugeordnet werden. Eine Beschreibung der Nuspec-Dateieigenschaften finden Sie in der NUSpec-Referenz.
(Optional) Um die Eigenschaften direkt in der AppLogger.csproj Projektdatei anzuzeigen, wählen Sie Project>Projektdatei bearbeitenaus.
Die Datei "AppLogger.csproj " wird auf einer neuen Registerkarte geöffnet.
Diese Option ist für Projekte verfügbar, die das SDK-Stil-Attribut verwenden.
Ausführen des Paketbefehls
Führen Sie die folgenden Schritte aus, um ein NuGet-Paket aus Ihrem Projekt zu erstellen:
Wählen Sie Build>Configuration Manager aus, und legen Sie dann die Aktive Lösungskonfiguration auf Release fest.
Klicken Sie in Solution Explorer mit der rechten Maustaste auf den AppLogger Projekt, und wählen Sie dann Pack aus.
Visual Studio erstellt das Projekt und erstellt die .nupkg- Datei.
Überprüfen Sie das Ausgabefenster auf detaillierte Informationen, einschließlich des Pfads zur Paketdatei. In diesem Beispiel befindet sich die integrierte Assembly im Ordner bin\Release\net8.0, der für ein .NET 8.0-Ziel geeignet ist:
1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------ 1> AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\net8.0\AppLogger.dll 1> Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\Contoso.App.Logger.Test.1.0.0.nupkg'. ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Wenn der Befehl "Pack" im Menü fehlt, ist Ihr Projekt wahrscheinlich kein SDK-Formatprojekt. Führen Sie einen der folgenden Schritte aus:
- Upgrade des Projekts, sodass Sie die .NET CLI verwenden können.
- Befolgen Sie die Anweisungen in Paket erstellen und veröffentlichen mit Visual Studio (.NET Framework, Windows), um das NuGet CLI zu verwenden, um ein NuGet-Paket aus Ihrem Projekt zu erstellen und zu veröffentlichen.
(Optional) Paket beim Build generieren
Sie können Visual Studio so konfigurieren, dass das NuGet-Paket beim Erstellen des Projekts automatisch generiert wird:
Wählen Sie Ihr Projekt in Solution Explorer aus, und wählen Sie dann Projekt><Projektname> Eigenschaften aus, wobei <Projektname> der Name Ihres Projekts (AppLogger in diesem Fall) ist.
Erweitern Sie den Knoten Package, wählen Sie Allgemeinaus, und wählen Sie dann NuGet-Paket beim Build generierenaus.
Anmerkung
Wenn Sie diese Option auswählen, erhöht die zum Generieren des Pakets erforderliche zusätzliche Zeit die Gesamtaufbauzeit Ihres Projekts.
(Optional) Packen mit MSBuild
Alternativ zum Verwenden des Menübefehls "Pack " können Sie den msbuild -t:pack Befehl verwenden, um ein NuGet-Paket aus Ihrem Projekt zu erstellen. NuGet 4.x+ und MSBuild 15.1+ unterstützen ein pack Ziel, wenn Ihr Projekt die erforderlichen Paketdaten enthält.
Öffnen Sie bei geöffnetem Projekt in Solution Explorer ein Eingabeaufforderungsfenster, indem Sie Tools>Befehlszeile>Developer-Eingabeaufforderung auswählen.
Das Eingabeaufforderungsfenster wird in Ihrem Projektverzeichnis geöffnet.
Führen Sie den folgenden Befehl aus:
msbuild -t:pack.
Weitere Informationen finden Sie unter Erstellen eines NuGet-Pakets mit MSBuild.
Veröffentlichen des Pakets
Nachdem Sie eine datei .nupkg erstellt haben, führen Sie die Schritte in den folgenden Abschnitten aus, um sie in nuget.org zu veröffentlichen. Sie können die .NET CLI oder die NuGet CLI zum Veröffentlichen verwenden. Sie verwenden auch einen API-Schlüssel, den Sie von nuget.org abrufen.
Anmerkung
Nuget.org überprüft alle hochgeladenen Pakete auf Viren und lehnt alle Pakete ab, die Viren enthalten. Nuget.org überprüft auch regelmäßig alle vorhandenen aufgelisteten Pakete.
Pakete, die Sie in nuget.org veröffentlichen, sind für andere Entwickler öffentlich sichtbar, es sei denn, Sie heben sie auf. Informationen zum privaten Hosten von Paketen finden Sie unter "Hosten Ihrer eigenen NuGet-Feeds".
API-Schlüssel abrufen
Erstellen Sie vor der Veröffentlichung Ihres NuGet-Pakets einen API-Schlüssel:
Melden Sie sich bei Ihrem nuget.org-Konto an, oder erstellen Sie ein Konto , wenn Sie noch kein Konto haben.
Wählen Sie in der oberen rechten Ecke Ihren Benutzernamen und dann API-Schlüssel aus.
Wählen Sie "Erstellen" aus, und geben Sie dann einen Namen für Ihren Schlüssel ein.
Wählen Sie unter Auswählen von Bereichen, Pushaus.
Geben Sie unter "Pakete auswählen" für "Glob-Muster" ein Sternchen (*) ein.
Wählen Sie Erstellenaus.
Wählen Sie Kopieren aus, um den neuen Schlüssel zu kopieren.
Wichtig
- Bewahren Sie ihren API-Schlüssel immer als geheim auf. Der API-Schlüssel ist wie ein Kennwort, das jeder zum Verwalten von Paketen in Ihrem Auftrag verwenden 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.
Scoping bietet eine Möglichkeit zum Erstellen separater API-Schlüssel für unterschiedliche Zwecke. 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: Pushen sie neue Pakete und Paketversionen, pushen Sie nur neue Paketversionen, oder heben Sie die Liste auf.
Durch Scoping können Sie API-Schlüssel für verschiedene Personen erstellen, die Pakete für Ihre Organisation verwalten, um ihnen nur die notwendigen Berechtigungen zu geben.
Weitere Informationen finden Sie unter "Bereichsbezogene API-Schlüssel".
Veröffentlichen mithilfe der .NET CLI oder NuGet CLI
Sie können die .NET CLI oder die NuGet CLI verwenden, um ein Paket an den Server zu übertragen und zu veröffentlichen. Wechseln Sie zur Registerkarte für das Tool, das Sie verwenden möchten.
Die .NET CLI (dotnet.exe) ist die empfohlene Alternative zur NuGet CLI.
Führen Sie im Ordner, der die .nupkg--Datei enthält, den folgenden Befehl aus. Ersetzen Sie <package-file> durch den Namen Ihrer .nupkg-Datei und <API-key> durch Ihren API-Schlüssel.
dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json
Die Ausgabe zeigt die Ergebnisse des Veröffentlichungsprozesses an:
Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.
Weitere Informationen finden Sie unter dotnet nuget push.
Fehler während der Veröffentlichung
Wenn Sie den push Befehl ausführen, tritt manchmal ein Fehler auf. Beispielsweise erhalten Sie in den folgenden Situationen möglicherweise einen Fehler:
- Ihr API-Schlüssel ist ungültig oder abgelaufen.
- Sie versuchen, ein Paket zu veröffentlichen, das über einen Bezeichner verfügt, der bereits auf dem Host vorhanden ist.
- Sie nehmen Änderungen an einem veröffentlichten Paket vor, vergessen jedoch, die Versionsnummer zu aktualisieren, bevor Sie versuchen, es erneut zu veröffentlichen.
Die Fehlermeldung gibt in der Regel die Quelle des Problems an.
Angenommen, der Bezeichner Contoso.App.Logger.Test ist für nuget.org vorhanden. Wenn Sie versuchen, ein Paket mit diesem Bezeichner zu veröffentlichen, wird die folgende Fehlermeldung angezeigt:
Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).
Um diese Situation zu beheben, überprüfen Sie den Bereich, das Ablaufdatum und den Wert Ihres API-Schlüssels. Wenn der Schlüssel gültig ist, gibt der Fehler an, dass der Paketbezeichner bereits auf dem Host vorhanden ist. Um das Problem zu umgehen, ändern Sie den Paketbezeichner so, dass er eindeutig ist, erstellen Sie das Projekt neu, erstellen Sie die nupkg-Datei erneut, und wiederholen Sie den push Befehl.
Verwalten des veröffentlichten Pakets
Wenn Ihr Paket erfolgreich veröffentlicht wurde, erhalten Sie eine Bestätigungs-E-Mail. Um das veröffentlichte Paket anzuzeigen, wechseln Sie zu nuget.org, wählen Sie ihren Benutzernamen in der oberen rechten Ecke aus, und wählen Sie dann " Pakete verwalten" aus.
Anmerkung
Es kann eine Weile dauern, bis Ihr Paket indiziert und in Suchergebnissen angezeigt wird, wo andere es finden können. Während dieser Zeit wird Ihr Paket unter Nicht aufgelisteten Paketenangezeigt, und auf der Paketseite wird die folgende Meldung angezeigt:
Nachdem Ihr NuGet-Paket nun auf nuget.org veröffentlicht wurde, können andere Entwickler es in ihren Projekten verwenden.
Wenn Sie ein Paket erstellen, das nicht hilfreich ist (z. B. dieses Beispielpaket aus einer leeren Klassenbibliothek), oder wenn das Paket nicht sichtbar sein soll, können Sie die Liste des Pakets aufheben, um es aus den Suchergebnissen auszublenden:
Nachdem das Paket unter veröffentlichten Pakete auf der Seite Pakete verwalten angezeigt wird, wählen Sie das Stiftsymbol neben dem Paketeintrag aus.
Wählen Sie auf der nächsten Seite "Eintrag" aus, deaktivieren Sie das Kontrollkästchen "Liste in Suchergebnissen ", und wählen Sie dann " Speichern" aus.
Das Paket wird jetzt unter „Nicht aufgelistete Pakete“ in „Pakete verwalten“ angezeigt und erscheint nicht mehr in den Suchergebnissen.
Anmerkung
Um zu verhindern, dass Ihr Testpaket auf nuget.org live ist, können Sie es auf die nuget.org-Testwebsite https://int.nugettest.orghochladen. Beachten Sie, dass Pakete, die auf int.nugettest.org hochgeladen werden, möglicherweise nicht gespeichert werden.
Eine Read-me- oder eine andere Datei hinzufügen
Sie können eine Readme-Datei oder andere Dateien in Ihr Paket einschließen.
Hinzufügen einer README-Datei
Führen Sie die folgenden Schritte aus, um dem Paket eine Readme-Datei hinzuzufügen:
Öffnen Sie die project Datei, indem Sie Project>Edit Project Datei auswählen.
Wechseln Sie in der Projektdatei zum
PropertyGroupElement, und fügen Sie dann einPackageReadmeFileuntergeordnetes Element hinzu:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> </Project>Wechseln Sie zum
ItemGroupElement, und fügen Sie dann einNoneuntergeordnetes Element hinzu:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> <ItemGroup> ... <None Include="readme.md" Pack="true" PackagePath="\" /> ... </ItemGroup> </Project>
Im vorherigen Beispiel gibt die Eigenschaft eine Datei mit dem Namen readme.md im Projektstamm an. Nach dem Erstellen, Packen und Veröffentlichen des Pakets zeigt nuget.org den Inhalt der Read-Me-Datei auf der Paketseite an. Visual Studio zeigt auch den Inhalt dieser Datei in der benutzeroberfläche Package Manager an.
Der folgende Screenshot zeigt beispielsweise die Lese-/Schreibzugriffsdatei für das HtmlAgilityPack Paket:
Hinzufügen weiterer Dateien
Um einem Paket weitere Dateien hinzuzufügen, öffnen Sie die project Datei, indem Sie Project>Edit Project Datei auswählen. Fügen Sie dann dem Content Element ein ItemGroup untergeordnetes Element hinzu:
<ItemGroup>
<Content Include="other-content.md">
<Pack>true</Pack>
<PackagePath>\</PackagePath>
</Content>
</ItemGroup>
Weitere Informationen finden Sie unter Including content in a package.
Verwandte Videos
Videos zur Verwendung von NuGet für die Paketverwaltung finden Sie unter .NET Package Management with NuGet for Beginners and NuGet for Beginners.
Verwandte Inhalte
Informationen zum Erstellen eines NuGet-Pakets mit dem Visual Studio .NET Framework finden Sie unter Create a package using the nuget.exe CLI.
Weitere Informationen zu NuGet finden Sie in den folgenden Artikeln: