Compartilhar via


adicionar pacote dotnet

Este artigo se aplica a: ✔️ SDK do .NET Core 3.1 e versões posteriores

Nome

dotnet package add - Adiciona ou atualiza uma referência de pacote em um arquivo de projeto.

Observação

Se você estiver usando o SDK do .NET 9 ou anterior, use o formulário "verbo primeiro" (dotnet add package) em vez disso. O formulário "substantivo primeiro" foi introduzido no .NET 10. Para obter mais informações, consulte a ordem de comando mais consistente.

Sinopse

dotnet package add <PACKAGE_NAME>
    [-f|--framework <FRAMEWORK>] [--interactive] [--project <PROJECT>]
    [-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
    [--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]

dotnet package add -h|--help

Descrição

O dotnet package add comando fornece uma opção conveniente para adicionar ou atualizar uma referência de pacote em um arquivo de projeto. Quando você executa o comando, há uma verificação de compatibilidade para garantir que o pacote seja compatível com as estruturas do projeto. Se a verificação for aprovada e o pacote não for referenciado no arquivo de projeto, um <PackageReference> elemento será adicionado ao arquivo de projeto. Se a verificação for aprovada e o pacote já for referenciado no arquivo de projeto, o <PackageReference> elemento será atualizado para a versão mais recente compatível. Depois que o arquivo de projeto é atualizado, a restauração do dotnet é executada.

Por exemplo, adicionar Microsoft.EntityFrameworkCoretoDo.csproj produz uma saída semelhante ao exemplo a seguir:

  Determining projects to restore...
  Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info :   GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info :   NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log  : Restored C:\ToDo\ToDo.csproj (in 171 ms).

O arquivo ToDo.csproj agora contém um <PackageReference> elemento para o pacote referenciado.

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

Se o projeto estiver integrado ao CPM (Gerenciamento Central de Pacotes), o <PackageVersion> elemento no Directory.Packages.props file elemento será adicionado/atualizado e o <PackageReference> elemento será adicionado ao arquivo de projeto.

Atualmente, há suporte para os cenários a seguir. Esses exemplos pressupõem que a versão Microsoft.EntityFrameworkCore mais recente seja 6.0.4. Cenários adicionais relacionados ao CPM estão documentados nesta especificação de design.

Cenário 1: <PackageReference> não existe no arquivo de projeto, <PackageVersion> o elemento não existe no Directory.Packages.props filee o argumento de versão não é passado da linha de comando.

Comando da CLI executado: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

O <PackageVersion> elemento é adicionado ao Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

O <PackageReference> elemento é adicionado ao arquivo de projeto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Cenário 2: <PackageReference> não existe no arquivo de projeto, <PackageVersion> o elemento não existe no Directory.Packages.props filee o argumento de versão é passado da linha de comando.

Comando da CLI executado: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

O <PackageVersion> elemento é adicionado ao Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />

O <PackageReference> elemento é adicionado ao arquivo de projeto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Cenário 3: <PackageReference> não existe no arquivo de projeto, <PackageVersion> o elemento existe no Directory.Packages.props filee o argumento de versão não é passado da linha de comando.

Comando da CLI executado: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

O <PackageVersion> elemento é adicionado ao Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

O <PackageReference> elemento é adicionado ao arquivo de projeto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Cenário 4: <PackageReference> não existe no arquivo de projeto, <PackageVersion> o elemento existe no Directory.Packages.props fileargumento , e o argumento de versão é passado da linha de comando.

Comando da CLI executado: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

O <PackageVersion> elemento é adicionado ao Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />

O <PackageReference> elemento é adicionado ao arquivo de projeto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Restauração implícita

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.

Argumentos

  • PROJECT

    Especifica o arquivo de projeto. Se não for especificado, o comando pesquisará um no diretório atual.

  • PACKAGE_NAME

    A referência de pacote a ser adicionada.

Opções

  • -f|--framework <FRAMEWORK>

    Adiciona uma referência de pacote somente ao direcionar uma estrutura específica.

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

  • --interactive

    Permite que o comando pare e aguarde entrada ou ação do usuário. Por exemplo, para concluir a autenticação.

  • -n|--no-restore

    Adiciona uma referência de pacote sem executar uma visualização de restauração e uma verificação de compatibilidade.

  • --package-directory <PACKAGE_DIRECTORY>

    O diretório onde restaurar os pacotes. O local de restauração de pacote padrão está %userprofile%\.nuget\packages no Windows e ~/.nuget/packages no macOS e no Linux. Para obter mais informações, consulte Gerenciando os pacotes globais, o cache e as pastas temporárias no NuGet.

  • --prerelease

    Permite que pacotes de pré-lançamento sejam instalados. Disponível desde o SDK do .NET Core 5

  • -s|--source <SOURCE>

    O URI da origem do pacote NuGet a ser usado durante a operação de restauração.

  • -v|--version <VERSION>

    Versão do pacote. Consulte o controle de versão do pacote NuGet.

Exemplos

  • Adicione Microsoft.EntityFrameworkCore o pacote NuGet a um projeto:

    dotnet package add Microsoft.EntityFrameworkCore
    
  • Adicione uma versão específica de um pacote a um projeto:

    dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
    
  • Adicione um pacote usando uma fonte específica do NuGet:

    dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
    

Consulte também