Рабочий процесс использования пакета

На веб-сайте nuget.org и в закрытых коллекциях пакетов, создаваемых в вашей организации, а также на других ресурсах вы можете найти десятки тысяч полезных пакетов, которые могут быть использованы в ваших приложениях и службах. Рабочий процесс использования пакетов во многом соответствует общему независимо от источника пакета.

Flow of going to a package source, finding a package, installing it in a project, then adding a using statement and calls to the package API

* Только Visual Studio и dotnet.exe. Команда nuget install не изменяет файлы проекта или файл packages.config. Записями нужно управлять вручную.

Дополнительные сведения см. в статьях Поиск и выбор пакетов и Процесс установки пакета.

NuGet запоминает удостоверение и номер версии каждого установленного пакета, записывая эти данные в файл проекта (при использовании формата PackageReference) или в файл packages.config в зависимости от типа проекта и версии NuGet. При использовании NuGet 4.0 и более поздних версий советуем использовать формат PackageReference. Кроме того, это можно настроить в Visual Studio через параметры пользовательского интерфейса диспетчера пакетов. В любом случае вы всегда можете найти соответствующий файл и просмотреть полный список зависимостей для вашего проекта.

Совет

Рекомендуется всегда проверять лицензии для каждого пакета, который вы планируете использовать в своем программном обеспечении. На веб-сайте nuget.org в правой части страницы с описанием для каждого пакета представлена ссылка на сведения о лицензии. Если для пакета не заданы условия лицензии, следует обратиться непосредственно к владельцу пакета по ссылке для связи с владельцем на странице пакета. Корпорация Майкрософт не предоставляет вам лицензию на какую-либо интеллектуальную собственность сторонних поставщиков пакетов и не несет ответственность за сведения, предоставляемые третьими лицами.

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

NuGet также проверяет совместимость целевых платформ, которые поддерживаются пакетом, с вашим проектом. Если пакет не содержит совместимых сборок, NuGet отображает сообщение об ошибке. См. раздел Устранение ошибок с несовместимостью пакетов.

При добавлении кода проекта в репозиторий исходного кода пакеты NuGet, как правило, не включаются. Если впоследствии планируется клонирование репозитория или получение проекта каким-либо образом с построением агентов в таких системах, как Visual Studio Team Services, перед выполнением построения необходимо восстановить требуемые пакеты:

Flow of restoring NuGet packages by cloning a repository and using either a restore command

Восстановление пакета осуществляется с использованием сведений в файле проекта или packages.config, на основании которых переустанавливаются все зависимости. Обратите внимание, что в ходе этого процесса могут возникать определенные различия, которые описываются в разделе Разрешение зависимостей. Кроме того, на приведенной выше схеме не показана команда восстановления через консоль диспетчера пакетов, так как если вы используете эту консоль, то уже находитесь в контексте Visual Studio, который обычно обеспечивает автоматическое восстановление пакетов и предоставляет команды уровня решения, как показано на схеме.

В некоторых случаях требуется переустановить пакеты, которые уже включены в состав проекта, что также может потребовать переустановку зависимостей. Это легко сделать с помощью команды nuget reinstall или консоли диспетчера пакетов NuGet. Дополнительные сведения см. в разделе Повторная установка и обновление пакетов.

Наконец, поведение NuGet определяется файлами NuGet.Config. Для централизованного управления определенными настройками на разных уровнях можно использовать несколько файлов, как описывается в разделе Настройка поведения NuGet.

Способы установки пакетов NuGet

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

Средство Платформы Описание
dotnet CLI Все Средство CLI для библиотек .NET Core и .NET Standard, а также для проектов в стиле пакета SDK, нацеленных на .NET Framework (см. раздел Атрибут SDK). Извлекает пакет, определяемый атрибутом <package_name>, и добавляет ссылку в файл проекта. Кроме того, извлекает и устанавливает зависимости.
Visual Studio Windows и Mac Предоставляет пользовательский интерфейс для просмотра, выбора и установки в проект пакетов и их зависимостей из указанного источника пакетов. Добавляет ссылки на установленные пакеты в файл проекта.
Консоль диспетчера пакетов (Visual Studio) Только в Windows Извлекает пакет, определенный атрибутом <имя_пакета>, из выбранного источника и устанавливает его в указанный проект в решении, а затем добавляет ссылку в файл проекта. Кроме того, извлекает и устанавливает зависимости.
Интерфейс командной строки nuget.exe Все Средство CLI для библиотек .NET Framework и проектов со стилем, отличным от пакета SDK, нацеленных на библиотеки .NET Standard. Извлекает пакет, определенный атрибутом <package_name>, и развертывает его содержимое в папку в текущем каталоге. Кроме того, может извлекать все пакеты, перечисленные в файле packages.config. Извлекает и устанавливает зависимости, но не вносит никаких изменений в файлы проекта или файл packages.config.