Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart ziet u hoe u snel een NuGet-pakket maakt op basis van een .NET-klassebibliotheek en publiceert naar nuget.org met behulp van de .NET opdrachtregelinterface of dotnet CLI.
Vereiste voorwaarden
De .NET SDK, die het opdrachtregelprogramma dotnet biedt. Vanaf Visual Studio 2017 wordt de dotnet CLI automatisch geïnstalleerd met alle .NET- of .NET Core-gerelateerde workloads.
Een gratis account op nuget.org. Volg de instructies bij Een nieuw afzonderlijk account toevoegen.
Een klassebibliotheekproject maken
U kunt een bestaand .NET Class Library-project gebruiken voor de code die u wilt inpakken of als volgt een eenvoudig project maken:
- Maak een map met de naam AppLogger.
- Open een opdrachtprompt en ga naar de map AppLogger . Alle dotnet CLI-opdrachten in deze quickstart worden standaard uitgevoerd in de huidige map.
- Voer
dotnet new classlibin, waarmee een project wordt gemaakt met de naam van de huidige map.
Voor meer informatie, zie dotnet new.
Pakketmetagegevens toevoegen aan het projectbestand
Elk NuGet-pakket heeft een manifest dat de inhoud en afhankelijkheden van het pakket beschrijft. In het uiteindelijke pakket is het manifest een .nuspec-bestand , dat gebruikmaakt van de NuGet-metagegevenseigenschappen die u in het projectbestand opneemt.
Open het projectbestand .csproj, .fsproj of .vbproj en voeg de volgende eigenschappen toe binnen de bestaande <PropertyGroup> tag. Gebruik uw eigen waarden voor naam en bedrijf en vervang de pakket-id door een unieke waarde.
<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>
Belangrijk
De pakket-id moet uniek zijn in nuget.org en andere pakketbronnen. Publiceren maakt het pakket openbaar zichtbaar, dus als u de voorbeeldbibliotheek van AppLogger of een andere testbibliotheek gebruikt, gebruikt u een unieke naam die bevat Sample of Test.
U kunt eventueel optionele eigenschappen toevoegen die worden beschreven in eigenschappen van NuGet-metagegevens.
Opmerking
Voor pakketten die u bouwt voor openbaar gebruik, besteed speciale aandacht aan de PackageTags eigenschap. Met tags kunnen anderen uw pakket vinden en begrijpen wat het doet.
Voer de opdracht Pack uit
Als u een NuGet-pakket of .nupkg-bestand wilt maken vanuit het project, voert u de opdracht dotnet pack uit, waarmee het project ook automatisch wordt gebouwd.
dotnet pack
De uitvoer toont het pad naar het .nupkg-bestand :
MSBuild version 17.3.0+92e077650 for .NET
Determining projects to restore...
Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.
Automatisch pakket genereren tijdens het bouwen
Als u dotnet pack automatisch wilt uitvoeren wanneer u dotnet build uitvoert, voegt u de volgende regel toe aan uw projectbestand in <PropertyGroup>:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Het pakket publiceren
Publiceer uw .nupkg-bestand naar nuget.org met behulp van de opdracht dotnet nuget push met een API-sleutel die u uit nuget.org krijgt.
Opmerking
Nuget.org scant alle geüploade pakketten op virussen en weigert alle pakketten die virussen bevatten. Nuget.org scant ook regelmatig alle bestaande vermelde pakketten.
Pakketten die u naar nuget.org publiceert, zijn openbaar zichtbaar voor andere ontwikkelaars, tenzij u de lijst met pakketten ongedaan maakt. Als u pakketten privé wilt hosten, raadpleegt u Uw eigen NuGet-feeds hosten.
Uw API-sleutel ophalen
Meld u aan bij uw nuget.org-account of maak een account als u er nog geen hebt.
Selecteer uw gebruikersnaam in de rechterbovenhoek en selecteer vervolgens API-sleutels.
Selecteer Maken en voer een naam in voor uw sleutel.
Selecteer onder Bereiken selecteren, Push.
Voer onder Pakketten selecteren voor Glob-patroon een sterretje (*) in.
Klik op Creëren.
Selecteer Kopiëren om de nieuwe sleutel te kopiëren.
Belangrijk
- Bewaar uw API-sleutel altijd een geheim. De API-sleutel is vergelijkbaar met een wachtwoord dat iedereen namens u kan gebruiken om pakketten te beheren. Verwijder uw API-sleutel of genereer deze opnieuw als deze per ongeluk wordt weergegeven.
- Sla uw sleutel op een veilige locatie op, omdat u de sleutel later niet meer kunt kopiëren. Als u terugkeert naar de pagina api-sleutel, moet u de sleutel opnieuw genereren om deze te kopiëren. U kunt de API-sleutel ook verwijderen als u pakketten niet meer wilt pushen.
Scoping biedt een manier om afzonderlijke API-sleutels te maken voor verschillende doeleinden. Elke sleutel heeft een verloopperiode, en u kunt de sleutel beperken tot specifieke pakketten of glob-patronen. U kunt ook elke sleutel opgeven voor specifieke bewerkingen: nieuwe pakketten en pakketversies pushen, alleen nieuwe pakketversies pushen of de lijst opheffen.
Door middel van scoping kunt u API-sleutels maken voor verschillende personen die pakketten voor uw organisatie beheren, zodat ze alleen de machtigingen hebben die ze nodig hebben.
Zie voor meer informatie Gescope API-sleutels.
Publiceren met dotnet nuget push
Voer in de map met het .nupkg-bestand de volgende opdracht uit. Vervang <package-file> door de naam van uw .nupkg-bestand en vervang deze door <API-key> uw API-sleutel.
dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json
De uitvoer toont de resultaten van het publicatieproces:
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.
Zie dotnet nuget push voor meer informatie.
Publicatiefouten
Wanneer u de push opdracht uitvoert, treedt er soms een fout op. Er kan bijvoorbeeld een fout optreden in de volgende situaties:
- Uw API-sleutel is ongeldig of verlopen.
- U probeert een pakket te publiceren met een id die al bestaat op de host.
- U kunt wijzigingen aanbrengen in een gepubliceerd pakket, maar vergeet het versienummer bij te werken voordat u het opnieuw probeert te publiceren.
Het foutbericht geeft doorgaans de bron van het probleem aan.
Stel dat de id Contoso.App.Logger.Test bestaat op nuget.org. Als u probeert een pakket met die id te publiceren, krijgt u de volgende fout:
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.).
Als u deze situatie wilt oplossen, controleert u het bereik, de vervaldatum en de waarde van uw API-sleutel. Als de sleutel geldig is, geeft de fout aan dat de pakket-id al bestaat op de host. U kunt het probleem oplossen door de pakket-id te wijzigen in uniek, het project opnieuw te bouwen, het .nupkg-bestand opnieuw te maken en de opdracht opnieuw uit te push voeren.
Het gepubliceerde pakket beheren
Wanneer uw pakket is gepubliceerd, ontvangt u een bevestigingsmail. Als u het gepubliceerde pakket wilt zien, gaat u naar nuget.org, selecteert u uw gebruikersnaam in de rechterbovenhoek en selecteert u Vervolgens Pakketten beheren.
Opmerking
Het kan even duren voordat uw pakket is geïndexeerd en wordt weergegeven in zoekresultaten waar anderen het kunnen vinden. Gedurende die tijd wordt uw pakket weergegeven onder Niet-vermelde pakketten en wordt op de pakketpagina het volgende bericht weergegeven:
Nu uw NuGet-pakket is gepubliceerd op nuget.org, kunnen andere ontwikkelaars het in hun projecten gebruiken.
Als u een pakket maakt dat niet nuttig is (zoals dit voorbeeldpakket uit een lege klassebibliotheek), of als u niet wilt dat het pakket zichtbaar is, kunt u het pakket opheffen om het te verbergen in zoekresultaten:
Nadat het pakket wordt weergegeven onder Gepubliceerde pakketten op de pagina Pakketten beheren , selecteert u het potloodpictogram naast de pakketvermelding.
Op de volgende pagina selecteert u Vermelding, schakelt u het selectievakje Lijst in zoekresultaten uit en selecteert u Opslaan.
Het pakket wordt nu weergegeven onder Niet-vermelde pakketten in Pakketten beheren en wordt niet meer weergegeven in zoekresultaten.
Opmerking
Om te voorkomen dat uw testpakket live is op nuget.org, kunt u pushen naar de nuget.org testsite op https://int.nugettest.org. Houd er rekening mee dat pakketten die zijn geüpload naar int.nugettest.org mogelijk niet behouden blijven.
Gefeliciteerd met het maken en publiceren van uw eerste NuGet-pakket.
Gerelateerde video
Meer NuGet-video's vinden op Channel 9 en YouTube.
Volgende stappen
Zie meer informatie over het maken van pakketten met de dotnet CLI:
Meer informatie over het maken en publiceren van NuGet-pakketten: