dotnet restore

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

Nome

dotnet restore – Restaura as dependências e as ferramentas de um projeto.

Sinopse

dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-parallel]
    [-f|--force] [--force-evaluate] [--ignore-failed-sources]
    [--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
    [--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
    [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
    [--use-lock-file] [-v|--verbosity <LEVEL>]

dotnet restore -h|--help

Descrição

O comando dotnet restore usa o NuGet para restaurar as dependências e ferramentas específicas de projeto especificadas no arquivo de projeto. Na maioria dos casos, você não precisa usar o comando dotnet restore explicitamente, pois a restauração do NuGet é executada implicitamente, se necessário, durante a execução dos seguintes comandos:

Às vezes, pode ser inconveniente executar a restauração implícita do NuGet com esses comandos. Por exemplo, alguns sistemas automatizados, como os sistemas de compilação, precisam chamar o dotnet restore explicitamente para controlar o momento em que a restauração ocorre para que possam controlar o uso de rede. Para evitar a restauração implícita do NuGet, use o sinalizador --no-restore com um desses comandos para desabilitar a restauração implícita.

Observação

A verificação de pacote assinado durante as operações de restauração requer um repositório raiz de certificado válido para assinatura de código e carimbo de data/hora. Consulte Verificação do pacote assinado pelo NuGet para obter detalhes.

Especificar feeds

Para restaurar as dependências, o NuGet precisa dos feeds nos quais os pacotes estão localizados. Os feeds são geralmente fornecidos por meio do arquivo de configuração nuget.config. Um arquivo de configuração padrão é fornecido quando o SDK do .NET é instalado. Para especificar feeds adicionais, execute uma das seguintes ações:

Você pode substituir os feeds do nuget.config com a opção -s.

Para obter informações de como usar feeds autenticados, confira Como consumir pacotes de feeds autenticados.

Pasta de pacotes globais

Para dependências, você pode especificar onde os pacotes restaurados são colocados durante a operação de restauração usando o argumento --packages. Se não é especificado, o cache do pacote NuGet padrão é usado, o qual pode ser encontrado no diretório .nuget/packages do diretório base do usuário em todos os sistemas operacionais. Por exemplo, /home/user1 no Linux ou C:\Usuário\user1 no Windows.

Ferramentas específicas do projeto

Para ferramentas específicas do projeto, o dotnet restore primeiro restaura o pacote no qual a ferramenta foi empacotada e prossegue com a restauração das dependências da ferramenta conforme especificado no seu arquivo de projeto.

Diferenças do nuget.config

O comportamento do comando dotnet restore será afetado pelas configurações no arquivo nuget.config, se estiver presente. Por exemplo, a definição da globalPackagesFolder em nuget.config coloca os pacotes NuGet restaurados na pasta especificada. Essa é uma alternativa para especificar a opção --packages no comando dotnet restore. Para obter mais informações, confira a Referência do nuget.config.

Há três configurações específicas que são ignoradas por dotnet restore:

  • bindingRedirects

    Os redirecionamentos de associação não funcionam com elementos <PackageReference> e o .NET só dá suporte a elementos <PackageReference> em pacotes NuGet.

  • solução

    Essa configuração é específica do Visual Studio e não se aplica ao .NET. O .NET não usa um arquivo packages.config, ele usa elementos <PackageReference> para pacotes NuGet.

  • trustedSigners

    O suporte para verificação de assinatura de pacote multiplataforma foi adicionado ao SDK do .NET 5.0.100.

Downloads de manifesto de carga de trabalho

Quando você executa esse comando, ele inicia um download assíncrono em segundo plano de manifestos de publicidade para cargas de trabalho. Se o download ainda estiver em execução quando esse comando for concluído, o download será interrompido. Para saber mais, consulte Manifestos de publicidade.

Argumentos

  • ROOT

    Caminho opcional para o arquivo de projeto a ser restaurado.

Opções

  • --configfile <FILE>

    O arquivo de configuração do NuGet (nuget.config) a ser usado. Se esse arquivo for especificado, serão usadas somente as configurações dele. Se ele não for especificado, será usada a hierarquia de arquivos de configuração do diretório atual. Para obter mais informações, confira Configurações comuns do NuGet.

  • --disable-parallel

    Desabilita a restauração de vários projetos paralelamente.

  • --force

    Forçará todas as dependências a serem resolvidas mesmo se última restauração tiver sido bem-sucedida. A especificação desse sinalizador é o mesmo que a exclusão do arquivo project.assets.json.

  • --force-evaluate

    Força a restauração a reavaliar todas as dependências, mesmo quando já existe um arquivo de bloqueio.

  • -?|-h|--help

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

  • --ignore-failed-sources

    Avise somente sobre fontes com falha se houver pacotes que atendem ao requisito de versão.

  • --interactive

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

  • --lock-file-path <LOCK_FILE_PATH>

    Local de saída em que o arquivo de bloqueio de projeto é gravado. Por padrão, é PROJECT_ROOT\packages.lock.json.

  • --locked-mode

    Não permitir a atualização do arquivo de bloqueio do projeto.

  • --no-cache

    Especifica que as solicitações HTTP não devem ser armazenadas em cache.

  • --no-dependencies

    Ao restaurar um projeto com referências de P2P (projeto a projeto), restaura o projeto raiz, não as referências.

  • --packages <PACKAGES_DIRECTORY>

    Especifica o diretório para os pacotes restaurados.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Especifica um runtime para a restauração do pacote. Isso é usado para restaurar pacotes para runtimes não listados explicitamente na marca <RuntimeIdentifiers> no arquivo .csproj. Para obter uma lista de RIDs (Identificadores de Runtime), veja o Catálogo de RIDs.

  • -s|--source <SOURCE>

    Especifica o URI da origem do pacote NuGet a ser usado durante a operação de restauração. Essa configuração substitui todas as fontes especificadas nos arquivos nuget.config. Diversas fontes podem ser fornecidas especificando essa opção várias vezes.

  • --use-lock-file

    Permite que o arquivo de bloqueio do projeto seja gerado e usado com a restauração.

  • -v|--verbosity <LEVEL>

    Define o nível de detalhes do comando. Os valores permitidos são q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. O padrão é minimal. Para obter mais informações, consulte LoggerVerbosity.

Exemplos

  • Restaure as dependências e as ferramentas para o projeto no diretório atual:

    dotnet restore
    
  • Restaure as dependências e as ferramentas para o projeto app1 encontrado no caminho fornecido:

    dotnet restore ./projects/app1/app1.csproj
    
  • Restaure as dependências e as ferramentas para o projeto no diretório atual usando o caminho de arquivo fornecido como a fonte:

    dotnet restore -s c:\packages\mypackages
    
  • Restaure as dependências e as ferramentas para o projeto no diretório atual usando os caminhos dos dois arquivos fornecidos como fontes:

    dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
    
  • Restaure as dependências e as ferramentas do projeto no diretório atual, mostrando a saída detalhada:

    dotnet restore --verbosity detailed