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 с помощью свойства -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 игнорирует:

  • bindingRedirects

    Перенаправления привязок не работают с элементами <PackageReference>, а .NET поддерживает только элементы <PackageReference> для пакетов NuGet.

  • solution

    Этот параметр относится только к Visual Studio и не применяется к .NET. .NET не использует файл packages.config. Вместо этого он использует элементы <PackageReference> для пакетов NuGet.

  • trustedSigners

    В пакете 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