Så här skapar du ett NuGet-paket med .NET CLI

Kommentar

Följande visar kommandoradsexempel med unix. Kommandot dotnet pack som visas här fungerar på samma sätt i Windows.

.NET Standard- och .NET Core-bibliotek förväntas distribueras som NuGet-paket. Det är i själva verket så alla .NET Standard-bibliotek distribueras och används. Det är enklast att göra med dotnet pack kommandot .

Tänk dig att du just skrev ett fantastiskt nytt bibliotek som du vill distribuera via NuGet. Du kan skapa ett NuGet-paket med plattformsoberoende verktyg för att göra exakt det! I följande exempel förutsätts ett bibliotek med namnet SuperAwesomeLibrary som är avsett netstandard1.0för .

Om du har transitiva beroenden, dvs. ett projekt som är beroende av ett annat paket, måste du återställa paket för hela lösningen med dotnet restore kommandot innan du skapar ett NuGet-paket. Om du inte gör det kommer kommandot dotnet pack inte att fungera korrekt.

Du behöver inte köra dotnet restore eftersom den körs implicit av alla kommandon som kräver en återställning, till exempel dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishoch dotnet pack. Om du vill inaktivera implicit återställning använder du alternativet --no-restore .

Kommandot dotnet restore är fortfarande användbart i vissa scenarier där det är meningsfullt att uttryckligen återställa, till exempel kontinuerliga integreringsversioner i Azure DevOps Services eller i byggsystem som uttryckligen behöver styra när återställningen sker.

Information om hur du hanterar NuGet-feeds finns i dokumentationendotnet restore.

När du har kontrollerat att paketen har återställts kan du navigera till katalogen där ett bibliotek finns:

cd src/SuperAwesomeLibrary

Sedan är det bara ett enda kommando från kommandoraden:

dotnet pack

Mappen /bin/Debug ser nu ut så här:

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

Detta skapar ett paket som kan kopplas från. Om du vill skapa ett NuGet-paket med versionsbinärfiler behöver du bara lägga till växeln --configuration (eller -c) och använda release som argument.

dotnet pack --configuration release

Mappen /bin har nu en versionsmapp som innehåller ditt NuGet-paket med versionsbinärfiler:

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

Och nu har du de filer som krävs för att publicera ett NuGet-paket!

Blanda inte ihop dotnet pack med dotnet publish

Det är viktigt att observera att kommandot inte vid något tillfälle är involverat dotnet publish . Kommandot dotnet publish är till för att distribuera program med alla deras beroenden i samma paket – inte för att generera ett NuGet-paket som ska distribueras och användas via NuGet.

Se även