Устанавливайте пакеты и управляйте ими непосредственно в Visual Studio с помощью диспетчера пакетов NuGet.

С помощью пользовательского интерфейса диспетчера пакетов NuGet в Visual Studio вы можете легко устанавливать, удалять и обновлять пакеты NuGet в проектах и решениях в ОС Windows. Если вы используете Visual Studio для Mac, см. руководство по включению пакета NuGet в проект. Пользовательский интерфейс диспетчера пакетов не входит в Visual Studio Code.

Примечание

Если у вас нет диспетчера пакетов NuGet в Visual Studio 2015, щелкните Сервис  Расширения и обновления и найдите расширение Диспетчер пакетов NuGet. Если вы не можете использовать установщик расширений в Visual Studio, скачайте расширение отсюда: https://dist.nuget.org/index.html.

Начиная с Visual Studio 2017, NuGet и диспетчер пакетов NuGet автоматически устанавливаются с любыми рабочими нагрузками, связанными с .NET. Установите его отдельно, щелкнув Отдельные компоненты Средства для работы с кодом > Диспетчер пакетов NuGet в установщике Visual Studio.

Поиск и установка пакета

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или имя проекта и выберите Управление пакетами NuGet.

    Пункт меню

  2. На вкладке Обзор по популярности отображаются пакеты из выбранного в данный момент источника (см. подробнее об источниках пакетов). Выполните поиск определенного пакета с помощью поля поиска в левом верхнем углу. Выберите пакет в списке, чтобы отобразить сведения о нем. Это также активирует кнопку Установить и раскрывающийся список для выбора версии.

    Вкладка

  3. Выберите нужную версию в раскрывающемся списке и щелкните Установить. Visual Studio установит пакет и его зависимости в проект. Может появиться запрос на принятие условий лицензионного соглашения. После завершения установки добавленные пакеты отобразятся на вкладке Установленные. Пакеты также перечислены в узле Ссылки обозревателя решений. Это значит, что на них можно ссылаться в проекте с помощью инструкций .

    Ссылки в обозревателе решений

Совет

Чтобы включить предварительные версии в поиск и сделать их доступными в раскрывающемся списке версий, щелкните Включить предварительные версии.

Примечание

У NuGet есть два формата, в которых пакеты могут использоваться в проекте: PackageReference и packages.config. Значение по умолчанию можно задать в окне параметров Visual Studio.

Удаление пакета

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.

  2. Откройте вкладку Установленные.

  3. Выберите пакет для удаления (при необходимости используйте поиск, чтобы отфильтровать список) и щелкните Удалить.

    Удаление пакета

  4. Обратите внимание, что элементы управления Включить предварительные версии и Источник пакета не применяются при удалении пакетов.

Обновление пакета

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet. (В проектах веб-сайтов щелкните правой кнопкой мыши папку Bin.)

  2. Перейдите на вкладку Обновления, чтобы просмотреть пакеты, для которых доступны обновления из выбранных источников пакетов. Выберите Включить предварительные версии, чтобы включить предварительные версии пакетов в список обновлений.

  3. Последовательно выберите пакет для обновления и нужную версию в раскрывающемся списке справа, а затем щелкните Обновить.

    Обновление пакета

  4. Для некоторых пакетов отключена кнопка . При этом появляется сообщение "На этот пакет неявно ссылается пакет SDK" (AutoReferenced). Это сообщение означает, что пакет является частью более крупной платформы или пакета SDK и не должен обновляться отдельно. (Такие пакеты отмечаются атрибутом <IsImplicitlyDefined>True</IsImplicitlyDefined>). Например, Microsoft.NETCore.App является частью пакета SDK для .NET Core, и версия пакета не совпадает с версией платформы среды выполнения, используемой приложением. Необходимо обновить установку .NET Core, чтобы получить новые версии ASP.NET Core и среды выполнения .NET Core. См. подробнее о метапакетах и управлении версиями .NET Core. Это относится к следующим часто используемым пакетам:

    • Microsoft.AspNetCore.All
    • Microsoft.AspNetCore.App
    • Microsoft.NETCore.App
    • NETStandard.Library

    Пример пакета, отмеченного как неявная ссылка или AutoReferenced

  5. Чтобы обновить несколько пакетов до последних версий, выберите их в списке и нажмите кнопку Обновить, расположенную над списком.

  6. Можно также обновить отдельный пакет на вкладке Установленные. В этом случае сведения о пакете будут содержать средство выбора версии (зависит от параметра Включить предварительные версии) и кнопку Обновить.

Управление пакетами для решения

Управление пакетами для решения — это удобный способ одновременно работать с несколькими проектами.

  1. Выберите команду меню Средства Диспетчер пакетов NuGet > Управление пакетами NuGet для решения или щелкните правой кнопкой мыши решение и выберите >.

    Управление пакетами NuGet для решения

  2. При управлении пакетами для решения пользовательский интерфейс позволяет выбрать проекты, затрагиваемые операциями.

    Выбор проекта при управлении пакетами для решения

Вкладка "Консолидация"

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

Вкладка

В этом примере проект ClassLibrary1 использует EntityFramework 6.2.0, а ConsoleApp1 использует EntityFramework 6.1.0. Для консолидации версий пакета сделайте следующее:

  • Выберите проекты для обновления в списке проектов.
  • Выберите версию, которая будет использоваться во всех проектах в элементе управления Версия, например EntityFramework 6.2.0.
  • Нажмите кнопку Установить.

Диспетчер пакетов устанавливает выбранную версию пакета во все выбранные проекты. После этого пакет больше не будет отображаться на вкладке Консолидация.

Источники пакетов

Чтобы изменить источник, из которого Visual Studio получает пакеты, выберите его в средстве выбора источника.

Средство выбора источника пакетов в пользовательском интерфейсе диспетчера пакетов

Для управления источниками пакетов сделайте следующее:

  1. Щелкните значок Параметры в пользовательском интерфейсе диспетчера пакетов, как показано ниже, или выберите команду Средства Параметры и прокрутите до пункта Диспетчер пакетов NuGet.

    Значок параметров пользовательского интерфейса диспетчера пакетов

  2. Выберите узел Источники пакетов.

    Параметры источников пакетов

  3. Чтобы добавить источник, выберите +, измените имя, введите URL-адрес или путь в элементе управления + и щелкните Обновить. Источник отобразится в раскрывающемся списке для выбора.

  4. Чтобы изменить источник пакета, выберите его, внесите изменения в поля Имя и Источник и щелкните Обновить.

  5. Чтобы отключить источник пакета, снимите флажок слева от имени в списке.

  6. Чтобы удалить источник пакета, выберите его и нажмите кнопку X.

  7. Использование кнопок со стрелками вверх и вниз не меняет приоритетный порядок источников пакетов. Visual Studio игнорирует порядок источников пакетов, используя пакет из любого источника, первым ответившего на запросы. См. подробнее о восстановлении пакетов.

Совет

Если источник пакета появляется после удаления, он может быть указан в файлах NuGet.Config уровня компьютера или уровня пользователя. Чтобы определить расположение этих файлов, см. описание распространенных конфигураций NuGet. Затем удалите источник, отредактировав файлы вручную или с помощью команды nuget sources.

Элемент управления "Параметры" диспетчера пакетов

Если пакет выбран, пользовательский интерфейс диспетчера пакетов отображает небольшой развертываемый элемент управления Параметры под средством выбора версий (показан в свернутом и развернутом виде). Обратите внимание, что для некоторых типов проектов предоставляется только параметр Показать окно предварительного просмотра.

Параметры диспетчера пакетов

Эти параметры объясняются в следующих разделах.

Показать окно предварительного просмотра

При выборе этого параметра модальное окно отображает зависимости выбранного пакета перед его установкой.

Пример диалогового окна предварительного просмотра

Параметры установки и обновления

(доступно не для всех типов проектов)

Поведение зависимости — указывает способ определения устанавливаемых версий зависимых пакетов в NuGet.

  • Игнорировать зависимости — пропускает установку зависимостей, что обычно приводит к прерыванию установки пакета.
  • Наименьший [по умолчанию] — устанавливает зависимость с минимальным номером версии, соответствующим требованиям основного выбранного пакета.
  • Наибольший номер исправления — устанавливает версию с теми же основными и дополнительными номерами версий, но с самым большим номером исправления. Например, если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.2.
  • Наибольший номер дополнительной версии — устанавливает версию с тем же основным номером версии, но с самым большим номером дополнительной версии и номером исправления. Если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.
  • Наибольший — устанавливает самую высокую доступную версию пакета.

Действие при конфликте файлов — указывает, как в NuGet должны обрабатываться пакеты, которые уже существуют в проекте или на локальном компьютере.

  • По приглашению — NuGet спрашивает, следует ли сохранять или перезаписывать существующие пакеты.
  • Пропустить все — NuGet пропускает перезапись существующих пакетов.
  • Перезаписать все — NuGet перезаписывает существующие пакеты.

Параметры удаления

(доступно не для всех типов проектов)

Удалить зависимости — удаляются все зависимые пакеты, если на них нет ссылок в других местах проекта.

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