Поделиться через


Создание пакета NuGet с помощью .NET CLI

Замечание

Ниже показаны примеры командной строки с помощью Unix. Команда dotnet pack , как показано здесь, работает так же в Windows.

Как ожидается, библиотеки .NET Standard и .NET Core будут распространяться в виде пакетов NuGet. На самом деле все библиотеки .NET Standard распространяются и используются. Проще всего это сделать с помощью команды dotnet pack.

Представьте, что вы только что написали удивительную новую библиотеку, которую вы хотите распространить по NuGet. Вы можете создать пакет NuGet с кроссплатформенными инструментами, чтобы сделать именно это! В следующем примере предполагается, что библиотека SuperAwesomeLibrary предназначена для netstandard1.0.

Если у вас есть транзитивные зависимости, то есть проект, который зависит от другого пакета, обязательно восстановите пакеты для всего решения с dotnet restore помощью команды перед созданием пакета NuGet. Если не сделать это, команда dotnet pack не будет работать должным образом.

Вам не нужно выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish и dotnet pack. Чтобы отключить неявное восстановление, используйте параметр --no-restore.

Команду dotnet restore по-прежнему удобно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.

В документации по dotnet restore приведены сведения об управлении каналами NuGet.

После восстановления пакетов можно перейти к каталогу, в котором находится библиотека:

cd src/SuperAwesomeLibrary

Затем это только одна команда из командной строки:

dotnet pack

Теперь папка /bin/Debug будет выглядеть следующим образом:

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

При этом создается пакет, способный выполнять отладку. Если вы хотите создать пакет NuGet с финальными двоичными файлами, необходимо добавить переключатель --configuration (или -c) и использовать release как аргумент.

dotnet pack --configuration release

Теперь в папке /bin появится папка релиз, содержащая ваш пакет NuGet с релизными двоичными файлами:

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

Теперь у вас есть необходимые файлы для публикации пакета NuGet!

Не путайте dotnet pack с dotnet publish

Важно отметить, что команда dotnet publish ни в каком случае не участвует. Эта dotnet publish команда предназначена для развертывания приложений со всеми их зависимостями в одном пакете, а не для создания пакета NuGet для распространения и использования с помощью NuGet.

См. также