comando restore (CLI do NuGet)

Aplica-se a: consumo de pacotes • Versões compatíveis: 2.7+

Faz download e instala todos os pacotes ausentes da pasta packages. Quando usado com o NuGet 4.0+ e o formato PackageReference, gera um arquivo <project>.nuget.props, se necessário, na pasta obj. (O arquivo pode ser omitido do controle do código-fonte.)

No Mac OSX e Linux com a CLI no Mono, a restauração de pacotes não é compatível com o PackageReference.

Uso

nuget restore <projectPath> [options]

em que <projectPath> especifica o local de uma solução ou de um arquivo packages.config. Confira os Comentários abaixo para obter os detalhes comportamentais.

Opções

  • -ConfigFile

    O arquivo de configuração do NuGet a ser aplicado. Se não for especificado, %AppData%\NuGet\NuGet.Config (Windows), ~/.nuget/NuGet/NuGet.Config ou ~/.config/NuGet/NuGet.Config (Mac/Linux) será usado.

  • -DirectDownload

    (4.0+) Faz o download diretamente sem popular nenhum cache com metadados ou binários.

  • -DisableParallelProcessing

    Desabilita a restauração de vários pacotes em paralelo.

  • -FallbackSource

    (3.2+) Uma lista de origens de pacote a serem usadas como fallbacks caso o pacote não seja encontrado na origem primária ou padrão. Use um ponto-e-vírgula para separar as entradas da lista.

  • -Force

    Em projetos baseados em PackageReference, força todas as dependências a serem resolvidas, mesmo que a última restauração tenha sido bem-sucedida. Especificar esse sinalizador é semelhante à exclusão do arquivo project.assets.json. Isso não dispensa o http-cache.

  • -ForceEnglishOutput

    (3.5 ou superior) Força a execução de nuget.exe usando uma cultura invariável com base em inglês.

  • -ForceEvaluate

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

  • -?|-help

    Exibe as informações de ajuda para o comando.

  • -LockFilePath

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

  • -LockedMode

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

  • -MSBuildPath

    (4.0 ou superior) Especifica o caminho do MSBuild a ser usado com o comando, tendo precedência sobre -MSBuildVersion.

  • -MSBuildVersion

    (3.2 ou superior) Especifica a versão do MSBuild a ser usada com esse comando. Os valores suportados são 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Por padrão, o MSBuild em seu caminho é selecionado, caso contrário, ele usa, por padrão, a versão mais recente instalada do MSBuild.

  • -NoHttpCache

    Impede que NuGet use pacotes http armazenados em cache. Confira Como gerenciar pacotes globais e pastas de cache.

  • -NonInteractive

    Suprime solicitações de entrada de usuário ou confirmações.

  • -OutputDirectory

    Especifica a pasta na qual os pacotes estão instalados. Se nenhuma pasta for especificada, a pasta atual será usada. Necessário ao restaurar com um arquivo packages.config, a menos que PackagesDirectory ou SolutionDirectory seja usado.

  • -PackageSaveMode

    Especifica os tipos de arquivos a serem salvos após a instalação do pacote: pode ser nuspec, nupkg ou nuspec;nupkg.

  • -PackagesDirectory

    Mesmo que OutputDirectory. Necessário ao restaurar com um arquivo packages.config, a menos que OutputDirectory ou SolutionDirectory seja usado.

  • -Project2ProjectTimeOut

    Tempo limite em segundos para resolver referências de projeto para projeto.

  • -Recursive

    (4.0+) Restaura todos os projetos de referência para projetos UWP e .NET Core. Não se aplica a projetos que usam packages.config.

  • -RequireConsent

    Verifica se a restauração de pacotes está habilitada antes de fazer o download e instalar os pacotes. Para obter mais detalhes, confira Restauração de pacotes.

  • -SolutionDirectory

    Especifica a pasta da solução. Não é válido ao restaurar pacotes para uma solução. Necessário ao restaurar com um arquivo packages.config, a menos que PackagesDirectory ou OutputDirectory seja usado.

  • -Source

    Especifica a lista de origens de pacote (como URLs) a serem usadas para a restauração. Se omitido, o comando usará as origens fornecidas nos arquivos de configuração; confira Como configurar o comportamento do NuGet. Use um ponto-e-vírgula para separar as entradas da lista.

  • -UseLockFile

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

  • -Verbosity [normal|quiet|detailed]

    Especifica a quantidade de detalhes exibida na saída: normal (o padrão), quiet ou detailed.

Confira também Variáveis de ambiente

Comentários

O comando restore executa as seguintes etapas:

  1. Determine o modo de operação do comando restore.

    tipo de arquivo projectPath Comportamento
    Solução (pasta) O NuGet procura um arquivo .sln e o usa se encontrado, caso contrário, gera um erro. (SolutionDir)\.nuget é usado como a pasta inicial.
    Arquivo .sln Restaurar pacotes identificados pela solução; vai gerar um erro se -SolutionDirectory for usado. $(SolutionDir)\.nuget é usado como a pasta inicial.
    packages.config ou arquivo de projeto Restaure pacotes listados no arquivo, resolvendo e instalando dependências.
    Outro tipo de arquivo Presume-se que o arquivo seja um arquivo .sln como acima; se não for uma solução, o NuGet vai gerar um erro.
    (projectPath não especificado)
    • O NuGet procura arquivos de solução na pasta atual. Se um único arquivo for encontrado, ele será usado para restaurar pacotes; se várias soluções forem encontradas, o NuGet vai gerar um erro.
    • Se não houver arquivos de solução, o NuGet procurará um packages.config e o usará para restaurar pacotes.
    • Se nenhuma solução ou arquivo packages.config for encontrado, o NuGet vai gerar um erro.
  2. Determine a pasta de pacotes usando a seguinte ordem de prioridade (o NuGet gerará um erro se nenhuma dessas pastas for encontrada):

    • A pasta especificada com -PackagesDirectory.
    • O valor repositoryPath em Nuget.Config
    • A pasta especificada com -SolutionDirectory
    • $(SolutionDir)\packages
  3. Ao restaurar pacotes para uma solução, o NuGet faz o seguinte:

    • Carrega o arquivo de solução.
    • Restaura os pacotes de nível de solução listados em $(SolutionDir)\.nuget\packages.config na pasta packages.
    • Restaure os pacotes listados em $(ProjectDir)\packages.config na pasta packages. Para cada pacote especificado, restaure o pacote em paralelo, a menos que -DisableParallelProcessing seja especificado.

Exemplos

# Restore packages for a solution file
nuget restore a.sln

# Restore packages for a solution file, using MSBuild version 14.0 to load the solution and its project(s)
nuget restore a.sln -MSBuildVersion 14

# Restore packages for a project's packages.config file, with the packages folder at the parent
nuget restore proj1\packages.config -PackagesDirectory ..\packages

# Restore packages for the solution in the current folder, specifying package sources
nuget restore -source "https://api.nuget.org/v3/index.json;https://www.myget.org/F/nuget"