Partilhar via


Como criar um pacote NuGet com a CLI do .NET

Observação

A seguir mostra exemplos de linha de comando usando Unix. O dotnet pack comando, como mostrado aqui, funciona da mesma maneira no Windows.

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

Imagine que você acabou de escrever uma nova biblioteca incrível que gostaria de distribuir pelo NuGet. Você pode criar um pacote NuGet com ferramentas multiplataforma para fazer exatamente isso! O exemplo a seguir pressupõe uma biblioteca chamada SuperAwesomeLibrary que tem como alvo netstandard1.0o .

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

Não é necessário executádotnet restore porque ele é executado implicitamente por todos os comandos que exigem uma restauração para ocorrer, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishe dotnet pack. Para desativar a restauração implícita, use a opção --no-restore.

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

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

Depois de garantir que os pacotes sejam restaurados, você pode navegar até o diretório onde uma biblioteca vive:

cd src/SuperAwesomeLibrary

Em seguida, é apenas um único comando da linha de comando:

dotnet pack

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

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

Isto gera um pacote que pode ser depurado. Se você quiser criar um pacote NuGet com binários de versão, tudo o que você precisa fazer é adicionar a --configuration opção (ou -c) e usar release como argumento.

dotnet pack --configuration release

Sua pasta /bin agora terá uma pasta de liberação contendo seu pacote NuGet com binários de 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 notar que em nenhum momento o dotnet publish comando está envolvido. O dotnet publish comando é para implantar aplicativos com todas as suas dependências no mesmo pacote -- não para gerar um pacote NuGet para ser distribuído e consumido via NuGet.

Ver também