Compartilhar via


Como criar um pacote NuGet com a CLI do .NET

Observação

Veja a seguir exemplos de linha de comando usando o Unix. O comando dotnet pack mostrado aqui funciona da mesma maneira no Windows.

Espera-se que as bibliotecas .NET Standard e .NET Core sejam distribuídas como pacotes NuGet. Isso na verdade mostra como todas as bibliotecas .NET Standard são distribuídas e consumidas. Isso é realizado mais facilmente com o comando dotnet pack.

Imagine que você acabou de criar uma nova biblioteca incrível e deseja distribuí-la no NuGet. Você pode criar um pacote NuGet com várias ferramentas multiplataforma para fazer exatamente isso. O exemplo a seguir assume uma biblioteca chamada SuperAwesomeLibrary tem como alvo netstandard1.0.

Se você tiver dependências transitivas, ou seja, um projeto que depende de outro pacote, restaure os pacotes para toda a solução com o comando dotnet restore antes de criar um pacote NuGet. Se não fizer isso, o comando dotnet pack não funcionará corretamente.

Não é necessário executar dotnet restore, pois ele é executado implicitamente por todos os comandos que exigem uma restauração, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Para desabilitar a restauração implícita, use a opção --no-restore.

O comando dotnet restore ainda é útil em determinados cenários em que realizar uma restauração explícita faz sentido, como compilações de integração contínua no Azure DevOps Services ou em sistemas de compilação que precisam controlar explicitamente quando a restauração ocorrerá.

Para obter informações sobre como gerenciar feeds do NuGet, confira a documentação do dotnet restore.

Depois de verificar se os pacotes foram restaurados, você poderá navegar até o diretório em que uma biblioteca reside:

cd src/SuperAwesomeLibrary

Depois disso, basta apenas um único comando da linha de comando:

dotnet pack

Sua pasta /bin/Debug agora terá a seguinte aparência:

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

Isso produz um pacote capaz de ser depurado. Se você deseja criar um pacote NuGet com binários de versão, tudo que você precisa fazer é adicionar o comutador --configuration (ou -c) e usar release como argumento.

dotnet pack --configuration release

Sua pasta /bin agora terá uma pasta release contendo seu pacote NuGet com os binários da versão:

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

E agora você tem os arquivos necessários para publicar um pacote NuGet.

Não confunda dotnet pack com dotnet publish

É importante observar que em nenhum momento o comando dotnet publish está envolvido. O comando dotnet publish é usado para implantar aplicativos com todas as suas dependências no mesmo pacote, não para gerar um pacote NuGet para ser distribuído e consumidos por meio do NuGet.

Confira também