dotnet restore
Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий
name
dotnet restore
— восстанавливает зависимости и средства проекта.
Краткий обзор
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
Описание
Команда dotnet restore
использует NuGet для восстановления зависимостей, а также связанных с проектом средств, которые указаны в файле проекта. В большинстве случаев не требуется явно использовать команду dotnet restore
, так как в случае необходимости восстановление NuGet происходит неявным образом при выполнении следующих команд:
В некоторых случаях выполнять неявное восстановление NuGet с помощью этих команд неудобно. Например, некоторые автоматизированные системы, такие как системы сборки, должны явно вызывать dotnet restore
, чтобы контролировать процесс восстановления и, следовательно, отслеживать использование сетевых ресурсов. Чтобы избежать неявного восстановления NuGet, с любой из приведенных выше команд можно использовать флаг --no-restore
для отключения неявного восстановления.
Примечание
Для проверки подписанного пакета во время операций восстановления требуется корневое хранилище сертификатов, допустимое как для подписывания кода, так и для метки времени. Дополнительные сведения см. в статье Проверка пакета, подписанного NuGet .
Указание каналов
Для восстановления зависимостей NuGet требуются каналы, где находятся пакеты. Каналы обычно предоставляются посредством файла конфигурации nuget.config. Файл конфигурации по умолчанию предоставляется при установке пакета SDK для .NET. Чтобы указать дополнительные каналы, выполните одно из следующих действий.
- Создайте собственный файл nuget.config в каталоге проекта. Дополнительные сведения см. в статье Распространенные конфигурации NuGet и разделе Различия nuget.config далее в этой статье.
- Используйте команды
dotnet nuget
, такие какdotnet nuget add source
.
Вы можете переопределить веб-каналы nuget.config с помощью свойства -s
.
Сведения об использовании веб-каналов, прошедших проверку подлинности, см. в статье Использование пакетов из веб-каналов, прошедших проверку подлинности.
Глобальный каталог пакетов
Для зависимостей можно указать, куда помещаются восстанавливаемые пакеты во время операции восстановления, с помощью аргумента --packages
. Если значение не указано, используется кэш пакетов NuGet по умолчанию. Он находится в каталоге .nuget/packages
в домашнем каталоге пользователя во всех операционных системах. Например, /home/user1 на Linux или C:\Users\user1 в Windows.
Связанные с проектом средства
Для связанных с проектом средств dotnet restore
сначала восстанавливает пакет, в котором упаковано средство, а затем — зависимости средства, указанные в файле проекта.
Различия nuget.config
На поведение команды dotnet restore
влияют параметры в файле nuget.config, если он существует. Например, если установить параметр globalPackagesFolder
в файле nuget.config, то восстановленные пакеты NuGet будут помещены в указанную папку. Для получения того же результата можно указать параметр --packages
команды dotnet restore
. Дополнительные сведения см. в справочнике по файлу nuget.config.
Существует три конкретных параметра, которые dotnet restore
игнорирует:
-
Перенаправления привязок не работают с элементами
<PackageReference>
, а .NET поддерживает только элементы<PackageReference>
для пакетов NuGet. -
Этот параметр относится только к Visual Studio и не применяется к .NET. .NET не использует файл
packages.config
. Вместо этого он использует элементы<PackageReference>
для пакетов NuGet. -
В пакете SDK для .NET 5.0.100 добавлена поддержка кроссплатформенной проверки подписей пакетов.
Скачивание манифестов рабочих нагрузок
При выполнении этой команды запускается асинхронное фоновое скачивание оповестительных манифестов для рабочих нагрузок. Если скачивание по-прежнему выполняется по завершении этой команды, оно останавливается. Дополнительные сведения см. в разделе Оповестительные манифесты.
Аргументы
ROOT
Дополнительный путь к файлу проекта для восстановления.
Параметры
--configfile <FILE>
Файл конфигурации NuGet (nuget.config), который будет использоваться. Если этот параметр указан, будут использоваться только параметры из этого файла. Если не указано, будет использоваться иерархия файлов конфигурации из текущего каталога. Дополнительные сведения см. в статье Распространенные конфигурации NuGet.
--disable-parallel
Отключает параллельное восстановление нескольких проектов.
--force
Принудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно. Указание этого флага дает тот же результат, что удаление файла project.assets.json.
--force-evaluate
Принудительно применяет восстановление, чтобы повторно рассчитать все зависимости, если файл блокировки уже существует.
-?|-h|--help
Выводит описание использования команды.
--ignore-failed-sources
Предупреждение о сбоях источников выдается только при наличии пакетов, соответствующих требованию к версии.
--interactive
Позволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности.
--lock-file-path <LOCK_FILE_PATH>
Расположение выходных данных для записи файла блокировки проекта. По умолчанию используется PROJECT_ROOT\packages.lock.json.
--locked-mode
Не разрешать обновление файла блокировки проекта.
--no-cache
Отключает кэширование HTTP-запросов.
--no-dependencies
При восстановлении проекта с перекрестными ссылками между проектами восстанавливает только корневой проект, но не ссылки.
--packages <PACKAGES_DIRECTORY>
Задает каталог для восстановленных пакетов.
-r|--runtime <RUNTIME_IDENTIFIER>
Задает среду выполнения для восстановления пакетов. Это позволяет восстановить пакеты для сред выполнения, явно не указанных в теге
<RuntimeIdentifiers>
файла CSPROJ. Список идентификаторов сред выполнения (RID) см. в каталоге RID.-s|--source <SOURCE>
Указывает URI источника пакета NuGet для использования во время операции восстановления. Этот параметр переопределяет все источники, указанные в файлах nuget.config. Чтобы указать несколько источников, задайте этот параметр несколько раз.
--use-lock-file
Включает создание файла блокировки проекта и использование этого файла при восстановлении.
-v|--verbosity <LEVEL>
Задает уровень детализации команды. Допустимые значения:
q[uiet]
,m[inimal]
,n[ormal]
,d[etailed]
иdiag[nostic]
. Значение по умолчанию —minimal
. Для получения дополнительной информации см. LoggerVerbosity.
Примеры
Восстановление зависимостей и средств для проекта в текущем каталоге:
dotnet restore
Восстановление зависимостей и средств для проекта
app1
по указанному пути:dotnet restore ./projects/app1/app1.csproj
Восстановление зависимостей и средств для проекта в текущем каталоге с использованием пути к файлу, заданного в качестве источника:
dotnet restore -s c:\packages\mypackages
Восстановление зависимостей и средств для проекта в текущем каталоге с использованием двух путей к файлу, заданных в качестве источника:
dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
Восстановление зависимостей и средств для проекта в текущем каталоге с подробными выходными данными:
dotnet restore --verbosity detailed