Поделиться через


Что происходит при установке пакета NuGet?

Проще говоря, различные средства NuGet обычно создают ссылку на пакет в файле проекта или packages.config, затем выполняют восстановление пакета, что эффективно устанавливает пакет. Исключение заключается в том nuget install, что пакет расширяется только в папку packages и не изменяет другие файлы.

Общий процесс выглядит следующим образом:

  1. (Все инструменты, кроме nuget.exe) Зафиксируйте идентификатор пакета и версию в файл проекта или packages.config.

    Если средство установки — Visual Studio или dotnet CLI, средство сначала пытается установить пакет. Если это несовместимо, пакет не добавляется в файл проекта или packages.config.

  2. Приобретите пакет:

    • Проверьте, установлен ли пакет (по точному идентификатору и номеру версии) в папке глобальных пакетов , как описано в разделе "Управление глобальными пакетами и папками кэша".

    • Если пакет не находится в папке глобальных пакетов , попытайтесь получить его из источников, перечисленных в файлах конфигурации. Конфигурации сопоставления источников пакетов применяются на этом этапе. Для сетевых источников сначала попытайтесь получить пакет из HTTP-кэша, если -NoHttpCache не указано с nuget.exe или --no-http-cache не указано с dotnet restore. (Visual Studio и dotnet add package всегда используют кэш.) Если пакет используется из кэша, в выходных данных появится надпись CACHE. Кэш имеет время истечения срока действия 30 минут.

    • Если пакет был указан с помощью плавающей версии или без минимальной версии, NuGet свяжется со всеми источниками, чтобы определить лучшее соответствие. Пример: 1.*, (, 2.0.0].

    • Если пакет не находится в кэше HTTP, попытайтесь скачать его из источников, перечисленных в конфигурации. Если пакет скачан, в выходных данных отображаются "GET" и "ОК". NuGet регистрирует HTTP-трафик при нормальном уровне подробности.

    • Если пакет не может быть успешно получен из любых источников, установка завершается ошибкой, например NU1103. Обратите внимание, что ошибки из nuget.exe команд показывают только последний проверенный источник, но подразумевает, что пакет недоступен из любого источника.

    При получении пакета порядок источников в конфигурации NuGet может применяться:

    • NuGet проверяет источники локальных папок и сетевых ресурсов перед проверкой источников HTTP.
  3. Сохраните копию пакета и другие сведения в папке http-cache , как описано в разделе "Управление глобальными пакетами и папками кэша".

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

  5. NuGet устанавливает зависимости пакетов по мере необходимости. Этот процесс может обновить версии пакетов в процессе, как описано в разделе "Разрешение зависимостей".

  6. Обновите другие файлы и папки проекта:

  7. (только Visual Studio) Отображение файла readme пакета, если он доступен, в окне Visual Studio.

Наслаждайтесь продуктивным кодом с помощью пакетов NuGet!