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 run
dotnet 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.