Рабочий процесс использования пакета
На веб-сайте nuget.org и в закрытых коллекциях пакетов, создаваемых в вашей организации, а также на других ресурсах вы можете найти десятки тысяч полезных пакетов, которые могут быть использованы в ваших приложениях и службах. Рабочий процесс использования пакетов во многом соответствует общему независимо от источника пакета.
* Только 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, перед выполнением построения необходимо восстановить требуемые пакеты:
Восстановление пакета осуществляется с использованием сведений в файле проекта или 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 . |