Команда 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
Указывает типы файлов, которые необходимо сохранить после установки пакета: один из
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
.
См. также сведения о переменных среды
Remarks
Команда восстановления выполняет следующие действия.
Определите режим работы команды восстановления.
Тип файла projectPath Поведение Решение (папка) NuGet ищет .sln
файл и использует его при обнаружении; в противном случае возникает ошибка.(SolutionDir)\.nuget
используется в качестве начальной папки.Файл .sln
Восстановление пакетов, определенных решением; выдает ошибку, если -SolutionDirectory
используется.$(SolutionDir)\.nuget
используется в качестве начальной папки.packages.config
или файл проектаВосстановите пакеты, перечисленные в файле, разрешение и установку зависимостей. Другой тип файла Предполагается, что файл является файлом .sln
, как показано выше; если это не решение, NuGet выдает ошибку.(projectPath не указан) - NuGet ищет файлы решения в текущей папке. Если найден один файл, он используется для восстановления пакетов; Если найдено несколько решений, NuGet выдает ошибку.
- Если нет файлов решения, NuGet ищет
packages.config
и использует его для восстановления пакетов. - Если решение или
packages.config
файл не найдены, NuGet выдает ошибку.
Определите папку пакетов, используя следующий порядок приоритета (NuGet выдает ошибку, если ни одна из этих папок не найдена):
- Папка, указанная с параметром
-PackagesDirectory
. - Значение
repositoryPath
вNuget.Config
- Папка, указанная с помощью
-SolutionDirectory
$(SolutionDir)\packages
- Папка, указанная с параметром
При восстановлении пакетов для решения 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"