Gerenciar dependências de pacote em aplicativos .NET

Este artigo explica como adicionar e remover dependências de pacote editando o arquivo de projeto ou usando a CLI.

O elemento <PackageReference>

O elemento <PackageReference> de arquivo de projeto tem a seguinte estrutura:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

O atributo Include especifica a ID do pacote a ser adicionado ao projeto. O atributo Version especifica a versão a ser obtida. As versões são especificadas de acordo com as Regras de versão do NuGet.

Use condições para adicionar uma dependência disponível somente em um destino específico, conforme é mostrado no seguinte exemplo:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

A dependência no exemplo anterior só será válida se o build estiver ocorrendo para esse destino determinado. O $(TargetFramework) na condição é uma propriedade do MSBuild que está sendo definida no projeto. Para aplicativos .NET mais comuns, você não precisa fazer isso.

Adicionar e remover dependências

Você pode adicionar e remover dependências editando o arquivo de projeto ou por meio dos comandos da CLI do .NET.

Editar o arquivo de projeto

Para adicionar uma dependência, adicione um item <PackageReference> dentro de um elemento <ItemGroup>. Você pode adicioná-la a um <ItemGroup> existente ou criar outro.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

Para remover uma dependência, remova o item <PackageReference> do arquivo de projeto.

Como usar a CLI

Para adicionar uma dependência, execute o comando dotnet add package, conforme mostrado no seguinte exemplo:

dotnet add package Microsoft.EntityFrameworkCore

Para remover uma dependência, execute o comando dotnet remove package, conforme mostrado no seguinte exemplo:

dotnet remove package Microsoft.EntityFrameworkCore

Dicas

  • Não inclua entradas para a operação de restauração no arquivo .targets ou .props de um pacote referenciado. Essas entradas podem incluir itens PackageReference, atributos ExcludeAssets, os feeds NuGet a serem usados ou outra configuração do NuGet. Os arquivos .targets e .props dos pacotes só são usados quando a restauração do NuGet é concluída. Qualquer item necessário para a restauração precisa estar no arquivo de projeto ou no arquivo .targets do próprio projeto, não em uma dependência de pacote.

  • Caso deseje usar as APIs do ASP.NET em um aplicativo de console ou em uma biblioteca de classes, adicione um item FrameworkReference ao arquivo de projeto:

    <FrameworkReference Include="Microsoft.AspNetCore.App" />

    Para obter mais informações, confira Usar a estrutura compartilhada do ASP.NET Core.

Confira também