Delen via


Een NuGet-pakket maken met de .NET CLI

Opmerking

Hieronder ziet u opdrachtregelvoorbeelden met Unix. De dotnet pack opdracht zoals hier wordt weergegeven, werkt op dezelfde manier in Windows.

.NET Standard- en .NET Core-bibliotheken worden naar verwachting gedistribueerd als NuGet-pakketten. Dit is in feite hoe alle .NET Standard-bibliotheken worden gedistribueerd en gebruikt. Dit wordt het eenvoudigst gedaan met de dotnet pack opdracht.

Stel dat u zojuist een geweldige nieuwe bibliotheek hebt geschreven die u wilt distribueren over NuGet. U kunt een NuGet-pakket maken met platformoverschrijdende hulpprogramma's om dat precies te doen. In het volgende voorbeeld wordt uitgegaan van een bibliotheek genaamd SuperAwesomeLibrary die netstandard1.0 target.

Als u transitieve afhankelijkheden hebt, dus een project dat afhankelijk is van een ander pakket, moet u ervoor zorgen dat u pakketten voor de hele oplossing herstelt met de dotnet restore opdracht voordat u een NuGet-pakket maakt. Als u dit niet doet, werkt de dotnet pack opdracht niet goed.

U hoeft dotnet restore niet uit te voeren omdat deze impliciet wordt uitgevoerd door alle opdrachten waarvoor een herstelbewerking is vereist, zoals dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishen dotnet pack. Als u impliciet herstellen wilt uitschakelen, gebruikt u de optie --no-restore.

De dotnet restore opdracht is nog steeds nuttig in bepaalde scenario's waarin expliciet herstellen zinvol is, zoals builds voor continue integratie in Azure DevOps Services of in buildsystemen die expliciet moeten worden beheerd wanneer het herstellen plaatsvindt.

Zie de dotnet restore documentatievoor meer informatie over het beheren van NuGet-feeds.

Nadat u ervoor hebt gezorgd dat pakketten zijn hersteld, kunt u naar de map navigeren waarin een bibliotheek zich bevindt:

cd src/SuperAwesomeLibrary

Vervolgens is het slechts één opdracht vanaf de opdrachtregel:

dotnet pack

Je /bin/Debug-map ziet er nu zo uit:

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Dit produceert een pakket dat gedebugged kan worden. Als u een NuGet-pakket met binaire releasebestanden wilt bouwen, hoeft u alleen de --configuration (of -c) switch toe te voegen en als argument te gebruiken release .

dotnet pack --configuration release

Uw map /bin heeft nu een release-map die uw NuGet-pakket met binaire releasebestanden bevat.

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

En nu hebt u de benodigde bestanden om een NuGet-pakket te publiceren!

Niet verwarren dotnet pack met dotnet publish

Het is belangrijk te weten dat op geen enkel moment de dotnet publish opdracht betrokken is. De dotnet publish opdracht is bedoeld voor het implementeren van toepassingen met al hun afhankelijkheden in dezelfde bundel, niet voor het genereren van een NuGet-pakket dat moet worden gedistribueerd en gebruikt via NuGet.

Zie ook