Pular para o conteúdo
.NETPacotes NuGet e versões
Módulo 01Fundamentos da Plataforma e da Linguagem

Pacotes NuGet e versões

iniciante 20 min de leitura·Atualizado · .NET 9
Resumo

NuGet é o gerenciador de pacotes do .NET. Você adiciona bibliotecas de terceiros (ou da própria Microsoft) com dotnet add package, e as versões ficam registradas no .csproj para builds reprodutíveis.

1. Objetivos de Aprendizagem#

  • Adicionar, atualizar e remover pacotes NuGet.
  • Entender versionamento semântico de pacotes.
  • Conhecer o conceito de restore e cache.

2. Pré-requisitos#

  • Ter um projeto criado (tópico 2.1).

3. Conceito#

NuGet distribui bibliotecas empacotadas (.nupkg) a partir do repositório oficial nuget.org. Cada PackageReference no .csproj fixa nome + versão. O porquê: reaproveitar código pronto e testado (logging, JSON, EF Core…) em vez de reinventar.

As versões seguem SemVer (MAJOR.MINOR.PATCH):

  • MAJOR — mudanças incompatíveis.
  • MINOR — novos recursos compatíveis.
  • PATCH — correções compatíveis.

O dotnet restore baixa os pacotes (para um cache global em ~/.nuget/packages) antes de compilar; build e run fazem isso implicitamente.

4. Mão na Massa#

4.1. Setup#

Shell
dotnet new console -n Catalog.NugetDemo
cd Catalog.NugetDemo

4.2. Implementação Passo a Passo#

  1. Adicione um pacote (versão mais recente estável):
Shell
dotnet add package Serilog
  1. Adicione uma versão específica:
Shell
dotnet add package Serilog --version 4.0.0
  1. Liste e remova:
Shell
dotnet list package
dotnet remove package Serilog
  1. Force o restore:
Shell
dotnet restore

4.3. Executando#

Shell
dotnet build

5. Exemplo Completo#

Adicionar Serilog, usar um tipo dele no código e compilar demonstra o ciclo completo: add package grava o PackageReference, o restore baixa, o build compila.

6. Boas Práticas e Armadilhas#

FaçaEvite
Fixar versões explícitas no .csprojDepender de "última versão" implícita em produção
Revisar pacotes com dotnet list package --vulnerableAdicionar pacotes de fontes não confiáveis
Alinhar versões de pacotes Microsoft.Extensions.* ao TFMMisturar versões 8.x e 9.x sem necessidade
Atenção

pacotes trazem dependências transitivas. Um único add package pode puxar dezenas de outras bibliotecas — revise antes de adotar.

7. Segurança e Produção#

  • Rode dotnet list package --vulnerable e --outdated periodicamente. Pacotes desatualizados são vetor comum de vulnerabilidades.
  • Prefira fontes confiáveis (nuget.org oficial ou feed interno auditado).

8. Exercícios#

  • Fácil: adicione e remova um pacote.
  • Médio: fixe uma versão específica e confirme no .csproj.
  • Desafio: rode dotnet list package --vulnerable --include-transitive num projeto real.

9. Resumo#

NuGet gerencia dependências via PackageReference (nome + versão SemVer). restore baixa para um cache global; mantenha versões fixas e audite vulnerabilidades.

10. Próximos Passos#

Com o ambiente e os projetos dominados, começamos a sintaxe C#.

11. Referências#

02-03 — Pacotes NuGet e versões | Curso ASP.NET Core