Команда restore (NuGet CLI)

Область применения: использование пакетов • Поддерживаемые версии: 2.7+

Загружает и устанавливает все пакеты, отсутствующие в папке packages . При использовании с NuGet 4.0+ и форматом <project>.nuget.props PackageReference при необходимости в папке obj создается файл. (Файл можно опустить из системы управления версиями.)

В Mac OSX и Linux с интерфейсом командной строки в Mono восстановление пакетов не поддерживается с PackageReference.

Использование

nuget restore <projectPath> [options]

где <projectPath> указывает расположение решения или packages.config файла. Дополнительные сведения о поведении см. в примечаниях ниже.

Параметры

  • -ConfigFile

    Применяемый файл конфигурации NuGet. Если значение не указано, %AppData%\NuGet\NuGet.Config используется (Windows) или ~/.config/NuGet/NuGet.Config~/.nuget/NuGet/NuGet.Config (Mac/Linux).

  • -DirectDownload

    (4.0+) Загружает пакеты напрямую без заполнения кэшей двоичными файлами или метаданными.

  • -DisableParallelProcessing

    Отключает восстановление нескольких пакетов параллельно.

  • -FallbackSource

    (3.2+) Список источников пакетов, используемых в качестве резервных копий, если пакет не найден в основном источнике или источнике по умолчанию. Используйте точку с запятой для разделения записей списка.

  • -Force

    В проектах на основе PackageReference принудительно разрешает все зависимости, даже если последнее восстановление выполнено успешно. Указание этого флага аналогично удалению project.assets.json файла. Это не обходит http-cache.

  • -ForceEnglishOutput

    (3.5+) Заставляет nuget.exe выполняться с помощью инвариантного языка и региональных параметров на английском языке.

  • -ForceEvaluate

    Принудительно применяет восстановление, чтобы повторно рассчитать все зависимости, если файл блокировки уже существует.

  • -?|-help

    Отображает сведения о справке для команды.

  • -LockFilePath

    Расположение выходных данных для записи файла блокировки проекта. По умолчанию используется значение PROJECT_ROOT\packages.lock.json.

  • -LockedMode

    Не разрешать обновление файла блокировки проекта.

  • -MSBuildPath

    (4.0+) Указывает путь MSBuild, который будет использоваться с командой, имея приоритет над -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Указывает версию MSBuild, которая будет использоваться с этой командой. Поддерживаемые значения: 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. По умолчанию выбирается MSBuild в пути, в противном случае по умолчанию используется самая высокая установленная версия MSBuild.

  • -NoCache

    Запрещает NuGet использовать кэшированные пакеты. См. статью "Управление глобальными пакетами и папками кэша".

  • -NonInteractive

    Подавляет запросы на ввод данных пользователем или подтверждения.

  • -OutputDirectory

    Указывает папку, в которой установлены пакеты. Если папка не указана, используется текущая папка. Требуется при восстановлении с packages.config помощью файла, если PackagesDirectory не используется или SolutionDirectory не используется.

  • -PackageSaveMode

    Указывает типы файлов, которые необходимо сохранить после установки пакета: один из nuspecnupkgилиnuspec;nupkg.

  • -PackagesDirectory

    Эквивалентно OutputDirectory. Требуется при восстановлении с packages.config помощью файла, если OutputDirectory не используется или SolutionDirectory не используется.

  • -Project2ProjectTimeOut

    Время ожидания в секундах для разрешения ссылок между проектами.

  • -Recursive

    (4.0+) Восстанавливает все проекты ссылок для проектов UWP и .NET Core. Не применяется к проектам, использующим packages.config.

  • -RequireConsent

    Проверяет, включено ли восстановление пакетов перед скачиванием и установкой пакетов. Дополнительные сведения см. в разделе "Восстановление пакетов".

  • -SolutionDirectory

    Указывает папку решения. Недопустимо при восстановлении пакетов для решения. Требуется при восстановлении с packages.config помощью файла, если PackagesDirectory не используется или OutputDirectory не используется.

  • -Source

    Указывает список источников пакетов (в качестве URL-адресов), используемых для восстановления. Если этот параметр опущен, команда использует источники, предоставленные в файлах конфигурации, см. раздел "Настройка NuGet поведения". Используйте точку с запятой для разделения записей списка.

  • -UseLockFile

    Включает создание файла блокировки проекта и использование этого файла при восстановлении.

  • -Verbosity [normal|quiet|detailed]

    Указывает объем сведений, отображаемых в выходных данных: normal (по умолчанию) quietили detailed.

См. также сведения о переменных среды

Remarks

Команда восстановления выполняет следующие действия.

  1. Определите режим работы команды восстановления.

    Тип файла projectPath Поведение
    Решение (папка) NuGet ищет .sln файл и использует его при обнаружении; в противном случае возникает ошибка. (SolutionDir)\.nuget используется в качестве начальной папки.
    Файл .sln Восстановление пакетов, определенных решением; выдает ошибку, если -SolutionDirectory используется. $(SolutionDir)\.nuget используется в качестве начальной папки.
    packages.config или файл проекта Восстановите пакеты, перечисленные в файле, разрешение и установку зависимостей.
    Другой тип файла Предполагается, что файл является файлом.sln, как показано выше; если это не решение, NuGet выдает ошибку.
    (projectPath не указан)
    • NuGet ищет файлы решения в текущей папке. Если найден один файл, он используется для восстановления пакетов; Если найдено несколько решений, NuGet выдает ошибку.
    • Если нет файлов решения, NuGet ищет packages.config и использует его для восстановления пакетов.
    • Если решение или packages.config файл не найдены, NuGet выдает ошибку.
  2. Определите папку пакетов, используя следующий порядок приоритета (NuGet выдает ошибку, если ни одна из этих папок не найдена):

    • Папка, указанная с параметром -PackagesDirectory.
    • Значение repositoryPath в Nuget.Config
    • Папка, указанная с помощью -SolutionDirectory
    • $(SolutionDir)\packages
  3. При восстановлении пакетов для решения NuGet выполняет следующие действия.

    • Загружает файл решения.
    • Восстанавливает пакеты уровня решения, перечисленные в $(SolutionDir)\.nuget\packages.config папке packages .
    • Восстановите пакеты, перечисленные в $(ProjectDir)\packages.config папке packages . Для каждого указанного пакета восстановите пакет параллельно, если -DisableParallelProcessing не указано.

Примеры

# 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"