команда restore (Интерфейс командной строки NuGet)

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

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

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

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

nuget restore <projectPath> [options]

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

Параметры

  • -ConfigFile

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

  • -DirectDownload

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

  • -DisableParallelProcessing

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

  • -FallbackSource

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

  • -Force

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

  • -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.

  • -NoHttpCache

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

  • -NonInteractive

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

  • -OutputDirectory

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

  • -PackageSaveMode

    Указывает типы файлов, которые нужно сохранить после установки пакета: один из nuspec, nupkgили 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.

См. также переменные среды

Замечания

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

  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"