Jak utworzyć pakiet NuGet za pomocą interfejsu wiersza polecenia platformy .NET

Uwaga

Poniżej przedstawiono przykłady wiersza polecenia przy użyciu systemu Unix. Polecenie dotnet pack , jak pokazano tutaj, działa w taki sam sposób w systemie Windows.

Biblioteki .NET Standard i .NET Core powinny być dystrybuowane jako pakiety NuGet. W rzeczywistości jest to sposób dystrybucji i korzystania ze wszystkich bibliotek platformy .NET Standard. Jest to najłagodniejsze w dotnet pack przypadku polecenia .

Wyobraź sobie, że właśnie napisałeś niesamowitą nową bibliotekę, którą chcesz rozpowszechnić za pośrednictwem narzędzia NuGet. Możesz utworzyć pakiet NuGet za pomocą narzędzi międzyplatformowych, aby to zrobić dokładnie! W poniższym przykładzie przyjęto założenie, że biblioteka o nazwie SuperAwesomeLibrary jest przeznaczona dla elementu .netstandard1.0

Jeśli masz przejściowe zależności, oznacza to, że projekt, który zależy od innego pakietu, pamiętaj, aby przywrócić pakiety dla całego rozwiązania za pomocą dotnet restore polecenia przed utworzeniem pakietu NuGet. Nie można tego zrobić, spowoduje dotnet pack , że polecenie nie działa prawidłowo.

Nie trzeba uruchamiaćdotnet restore, ponieważ jest ona uruchamiana niejawnie przez wszystkie polecenia, które wymagają przywrócenia, takie jak dotnet new, , dotnet build, dotnet rundotnet test, , dotnet publish, i dotnet pack. Aby wyłączyć niejawne przywracanie, użyj --no-restore opcji .

Polecenie dotnet restore jest nadal przydatne w niektórych scenariuszach, w których jawne przywracanie ma sens, takie jak kompilacje ciągłej integracji w usługach Azure DevOps Services lub w systemach kompilacji, które muszą jawnie kontrolować, kiedy nastąpi przywracanie.

Aby uzyskać informacje na temat zarządzania kanałami informacyjnymi NuGet, zobacz dokumentacjędotnet restore.

Po przywróceniu pakietów można przejść do katalogu, w którym znajduje się biblioteka:

cd src/SuperAwesomeLibrary

Następnie jest to tylko jedno polecenie z wiersza polecenia:

dotnet pack

Folder /bin/Debug będzie teraz wyglądać następująco:

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

Spowoduje to utworzenie pakietu, który może być debugowany. Jeśli chcesz utworzyć pakiet NuGet z plikami binarnymi wydania, wystarczy dodać --configuration przełącznik (lub -c) i użyć release go jako argumentu.

dotnet pack --configuration release

Folder /bin będzie teraz miał folder wydania zawierający pakiet NuGet z plikami binarnymi wydania :

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

A teraz masz niezbędne pliki do opublikowania pakietu NuGet!

Nie należy mylić dotnet pack z dotnet publish

Należy pamiętać, że w żadnym momencie nie jest dotnet publish to polecenie. Polecenie dotnet publish służy do wdrażania aplikacji ze wszystkimi ich zależnościami w tym samym pakiecie — nie do generowania pakietu NuGet, który ma być dystrybuowany i używany za pośrednictwem narzędzia NuGet.

Zobacz też