Устанавливайте пакеты и управляйте ими непосредственно в Visual Studio с помощью диспетчера пакетов NuGet.Install and manage packages in Visual Studio using the NuGet Package Manager

С помощью пользовательского интерфейса диспетчера пакетов NuGet в Visual Studio вы можете легко устанавливать, удалять и обновлять пакеты NuGet в проектах и решениях в ОС Windows.The NuGet Package Manager UI in Visual Studio on Windows allows you to easily install, uninstall, and update NuGet packages in projects and solutions. Если вы используете Visual Studio для Mac, см. руководство по включению пакета NuGet в проект.For the experience in Visual Studio for Mac, see Including a NuGet package in your project. Пользовательский интерфейс диспетчера пакетов не входит в Visual Studio Code.The Package Manager UI is not included with Visual Studio Code.

Примечание

Если у вас нет диспетчера пакетов NuGet в Visual Studio 2015, щелкните Средства > Расширения и обновления и найдите расширение Диспетчер пакетов NuGet.If you're missing the NuGet Package Manager in Visual Studio 2015, check Tools > Extensions and Updates... and search for the NuGet Package Manager extension. Если вы не можете использовать установщик расширений в Visual Studio, скачайте расширение отсюда: https://dist.nuget.org/index.html.If you're unable to use the extensions installer in Visual Studio, download the extension directly from https://dist.nuget.org/index.html.

Начиная с Visual Studio 2017, NuGet и диспетчер пакетов NuGet автоматически устанавливаются с любыми рабочими нагрузками, связанными с .NET.Starting in Visual Studio 2017, NuGet and the NuGet Package Manager are automatically installed with any .NET-related workloads. Установите его отдельно, щелкнув Отдельные компоненты > Средства для работы с кодом > Диспетчер пакетов NuGet в установщике Visual Studio.Install it individually by selecting the Individual components > Code tools > NuGet package manager option in the Visual Studio installer.

Поиск и установка пакетаFind and install a package

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.In Solution Explorer, right-click either References or a project and select Manage NuGet Packages....

    Пункт меню "Управление пакетами NuGet"

  2. На вкладке Обзор по популярности отображаются пакеты из выбранного в данный момент источника (см. подробнее об источниках пакетов).The Browse tab displays packages by popularity from the currently selected source (see package sources). Выполните поиск определенного пакета с помощью поля поиска в левом верхнем углу.Search for a specific package using the search box on the upper left. Выберите пакет в списке, чтобы отобразить сведения о нем. Это также активирует кнопку Установить и раскрывающийся список для выбора версии.Select a package from the list to display its information, which also enables the Install button along with a version-selection drop-down.

    Вкладка "Обзор" в диалоговом окне "Управление пакетами NuGet"

  3. Выберите нужную версию в раскрывающемся списке и щелкните Установить.Select the desired version from the drop-down and select Install. Visual Studio установит пакет и его зависимости в проект.Visual Studio installs the package and its dependencies into the project. Может появиться запрос на принятие условий лицензионного соглашения.You may be asked to accept license terms. После завершения установки добавленные пакеты отобразятся на вкладке Установленные. Пакеты также перечислены в узле Ссылки обозревателя решений. Это значит, что их можно указывать в проекте с помощью инструкций using.When installation is complete, the added packages appear on the Installed tab. Packages are also listed in the References node of Solution Explorer, indicating that you can refer to them in the project with using statements.

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

Совет

Чтобы включить предварительные версии в поиск и сделать их доступными в раскрывающемся списке версий, щелкните Включить предварительные версии.To include prerelease versions in the search, and to make prerelease versions available in the version drop-down, select the Include prerelease option.

Примечание

У NuGet есть два формата, в которых пакеты могут использоваться в проекте: PackageReference и packages.config.NuGet has two formats in which a project may use packages: PackageReference and packages.config. Значение по умолчанию можно задать в окне параметров Visual Studio.The default can be set in Visual Studio's options window.

Удаление пакетаUninstall a package

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet.In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages....

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

  3. Выберите пакет для удаления (при необходимости используйте поиск, чтобы отфильтровать список) и щелкните Удалить.Select the package to uninstall (using search to filter the list if necessary) and select Uninstall.

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

  4. Обратите внимание, что элементы управления Включить предварительные версии и Источник пакета не применяются при удалении пакетов.Note that the Include prerelease and Package source controls have no effect when uninstalling packages.

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

  1. В обозревателе решений щелкните правой кнопкой мыши Ссылки или сам проект и выберите Управление пакетами NuGet. (В проектах веб-сайтов щелкните правой кнопкой мыши папку Bin.)In Solution Explorer, right-click either References or the desired project, and select Manage NuGet Packages.... (In web site projects, right-click the Bin folder.)

  2. Перейдите на вкладку Обновления, чтобы просмотреть пакеты, для которых доступны обновления из выбранных источников пакетов.Select the Updates tab to see packages that have available updates from the selected package sources. Выберите Включить предварительные версии, чтобы включить предварительные версии пакетов в список обновлений.Select Include prerelease to include prerelease packages in the update list.

  3. Последовательно выберите пакет для обновления и нужную версию в раскрывающемся списке справа, а затем щелкните Обновить.Select the package to update, select the desired version from the drop-down on the right, and select Update.

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

  4. Для некоторых пакетов отключена кнопка Обновить. При этом появляется сообщение "На этот пакет неявно ссылается пакет SDK" (AutoReferenced).For some packages, the Update button is disabled and a message appears saying that it's "Implicitly referenced by an SDK" (or "AutoReferenced"). Это сообщение означает, что пакет является частью более крупной платформы или пакета SDK и не должен обновляться отдельно.This message indicates that the package is part of a larger framework or SDK and should not be updated independently. (Такие пакеты отмечаются атрибутом <IsImplicitlyDefined>True</IsImplicitlyDefined>). Например, Microsoft.NETCore.App является частью пакета SDK для .NET Core, и версия пакета не совпадает с версией платформы среды выполнения, используемой приложением.(Such packages are internally marked with <IsImplicitlyDefined>True</IsImplicitlyDefined>.) For example, Microsoft.NETCore.App is part of the .NET Core SDK, and the package version is not the same as the version of the runtime framework used by the application. Необходимо обновить установку .NET Core, чтобы получить новые версии ASP.NET Core и среды выполнения .NET Core.You need to update your .NET Core installation to get new versions of the ASP.NET Core and .NET Core runtime. См. подробнее о метапакетах и управлении версиями .NET Core.See this document for more details on .NET Core metapackages and versioning. Это относится к следующим часто используемым пакетам:This applies to the following commonly used packages:

    • Microsoft.AspNetCore.AllMicrosoft.AspNetCore.All
    • Microsoft.AspNetCore.AppMicrosoft.AspNetCore.App
    • Microsoft.NETCore.AppMicrosoft.NETCore.App
    • NETStandard.LibraryNETStandard.Library

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

  5. Чтобы обновить несколько пакетов до последних версий, выберите их в списке и нажмите кнопку Обновить, расположенную над списком.To update multiple packages to their newest versions, select them in the list and select the Update button above the list.

  6. Кроме того, можно обновить отдельный пакет на вкладке Установленные. В этом случае сведения о пакете будут содержать средство выбора версии (зависит от параметра Включить предварительные версии) и кнопку Обновить.You can also update an individual package from the Installed tab. In this case, the details for the package include a version selector (subject to the Include prerelease option) and an Update button.

Управление пакетами для решенияManage packages for the solution

Управление пакетами для решения — это удобный способ одновременно работать с несколькими проектами.Managing packages for a solution is a convenient means to work with multiple projects simultaneously.

  1. Выберите команду меню Средства > Диспетчер пакетов NuGet > Управление пакетами NuGet для решения или щелкните правой кнопкой мыши решение и выберите Управление пакетами NuGet.Select the Tools > NuGet Package Manager > Manage NuGet Packages for Solution... menu command, or right-click the solution and select Manage NuGet Packages...:

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

  2. При управлении пакетами для решения пользовательский интерфейс позволяет выбрать проекты, затрагиваемые операциями.When managing packages for the solution, the UI lets you select the projects that are affected by the operations:

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

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

Разработчики обычно предпочитают не использовать разные версии одного и того же пакета NuGet в разных проектах в одном решении.Developers typically consider it bad practice to use different versions of the same NuGet package across different projects in the same solution. Когда вы выбираете управление пакетами для решения, в пользовательском интерфейсе диспетчера пакетов появляется вкладка Консолидация, на которой вы можете отслеживать использование пакетов с разными номерами версий разными проектами в решении.When you choose to manage packages for a solution, the Package Manager UI provides a Consolidate tab on which you can easily see where packages with distinct version numbers are used by different projects in the solution:

Вкладка "Консолидация" пользовательского интерфейса диспетчера пакетов

В этом примере проект ClassLibrary1 использует EntityFramework 6.2.0, а ConsoleApp1 использует EntityFramework 6.1.0.In this example, the ClassLibrary1 project is using EntityFramework 6.2.0, whereas ConsoleApp1 is using EntityFramework 6.1.0. Для консолидации версий пакета сделайте следующее:To consolidate package versions, do the following:

  • Выберите проекты для обновления в списке проектов.Select the projects to update in the project list.
  • Выберите версию, которая будет использоваться во всех проектах в элементе управления Версия, например EntityFramework 6.2.0.Select the version to use in all those projects in the Version control, such as EntityFramework 6.2.0.
  • Нажмите кнопку Установить.Select the Install button.

Диспетчер пакетов устанавливает выбранную версию пакета во все выбранные проекты. После этого пакет больше не будет отображаться на вкладке Консолидация.The Package Manager installs the selected package version into all selected projects, after which the package no longer appears on the Consolidate tab.

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

Чтобы изменить источник, из которого Visual Studio получает пакеты, выберите его в средстве выбора источника.To change the source from which Visual Studio obtains packages, select one from the source selector:

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

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

  1. Щелкните значок Параметры в пользовательском интерфейсе диспетчера пакетов, как показано ниже, или выберите Средства > Параметры и прокрутите до пункта Диспетчер пакетов NuGet.Select the Settings icon in the Package Manager UI outlined below or use the Tools > Options command and scroll to NuGet Package Manager:

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

  2. Выберите узел Источники пакетов.Select the Package Sources node:

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

  3. Чтобы добавить источник, выберите + , измените имя, введите URL-адрес или путь в элементе управления Источник и щелкните Обновить.To add a source, select +, edit the name, enter the URL or path in the Source control, and select Update. Источник отобразится в раскрывающемся списке для выбора.The source now appears in the selector drop-down.

  4. Чтобы изменить источник пакета, выберите его, внесите изменения в поля Имя и Источник и щелкните Обновить.To change a package source, select it, make edits in the Name and Source boxes, and select Update.

  5. Чтобы отключить источник пакета, снимите флажок слева от имени в списке.To disable a package source, clear the box to the left of the name in the list.

  6. Чтобы удалить источник пакета, выберите его и нажмите кнопку X.To remove a package source, select it and then select the X button.

  7. Использование кнопок со стрелками вверх и вниз не меняет приоритетный порядок источников пакетов.Using the up and down arrow buttons does not change the priority order of the package sources. Visual Studio игнорирует порядок источников пакетов, используя пакет из любого источника, первым ответившего на запросы.Visual Studio ignores the order of package sources, using the package from whichever source is first to respond to requests. См. подробнее о восстановлении пакетов.For more information, see Package restore.

Совет

Если источник пакета появляется после удаления, он может быть указан в файлах NuGet.Config уровня компьютера или уровня пользователя.If a package source reappears after deleting it, it may be listed in a computer-level or user-level NuGet.Config files. Чтобы определить расположение этих файлов, см. описание распространенных конфигураций NuGet. Затем удалите источник, отредактировав файлы вручную или с помощью команды nuget sources.See Common NuGet configurations for the location of these files, then remove the source by editing the files manually or using the nuget sources command.

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

Если пакет выбран, пользовательский интерфейс диспетчера пакетов отображает небольшой развертываемый элемент управления Параметры под средством выбора версий (показан в свернутом и развернутом виде).When a package is selected, the Package Manager UI displays a small, expandable Options control below the version selector (shown here both collapsed and expanded). Обратите внимание, что для некоторых типов проектов предоставляется только параметр Показать окно предварительного просмотра.Note that for some project types, only the Show preview window option is provided.

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

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

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

При выборе этого параметра модальное окно отображает зависимости выбранного пакета перед его установкой.When selected, a modal window displays which the dependencies of a chosen package before the package is installed:

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

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

(доступно не для всех типов проектов)(Not available for all project types.)

Поведение зависимости — указывает способ определения устанавливаемых версий зависимых пакетов в NuGet.Dependency behavior configures how NuGet decides which versions of dependent packages to install:

  • Игнорировать зависимости — пропускает установку зависимостей, что обычно приводит к прерыванию установки пакета.Ignore dependencies skips installing any dependencies, which typically breaks the package being installed.
  • Наименьший [по умолчанию] — устанавливает зависимость с минимальным номером версии, соответствующим требованиям основного выбранного пакета.Lowest [Default] installs the dependency with the minimal version number that meets the requirements of the primary chosen package.
  • Наибольший номер исправления — устанавливает версию с теми же основными и дополнительными номерами версий, но с самым большим номером исправления.Highest Patch installs the version with the same major and minor version numbers, but the highest patch number. Например, если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.2.For example, if version 1.2.2 is specified then the highest version that starts with 1.2 will be installed
  • Наибольший номер дополнительной версии — устанавливает версию с тем же основным номером версии, но с самым большим номером дополнительной версии и номером исправления.Highest Minor installs the version with the same major version number but the highest minor number and patch number. Если указана версия 1.2.2, будет установлена самая высокая версия, которая начинается с 1.If version 1.2.2 is specified, then the highest version that starts with 1 will be installed
  • Наибольший — устанавливает самую высокую доступную версию пакета.Highest installs the highest available version of the package.

Действие при конфликте файлов — указывает, как в NuGet должны обрабатываться пакеты, которые уже существуют в проекте или на локальном компьютере.File conflict action specifies how NuGet should handle packages that already exist in the project or local machine:

  • По приглашению — NuGet спрашивает, следует ли сохранять или перезаписывать существующие пакеты.Prompt instructs NuGet to ask whether to keep or overwrite existing packages.
  • Пропустить все — NuGet пропускает перезапись существующих пакетов.Ignore All instructs NuGet to skip overwriting any existing packages.
  • Перезаписать все — NuGet перезаписывает существующие пакеты.Overwrite All instructs NuGet to overwrite any existing packages.

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

(доступно не для всех типов проектов)(Not available for all project types.)

Удалить зависимости — удаляются все зависимые пакеты, если на них нет ссылок в других местах проекта.Remove dependencies: when selected, removes any dependent packages if they're not referenced elsewhere in the project.

Принудительно удалить, даже если есть зависимости от него — пакет удаляется, даже если на него по-прежнему есть ссылка в проекте.Force uninstall even if there are dependencies on it: when selected, uninstalls a package even if it's still being referenced in the project. Обычно используется в сочетании с удалением зависимостей для удаления пакета и любых установленных зависимостей.This is typically used in combination with Remove dependencies to remove a package and whatever dependencies it installed. Но использование этого параметра может привести к нарушению ссылок в проекте.Using this option may, however, lead to broken references in the project. В таких случаях может потребоваться переустановить другие пакеты.In such cases, you may need to reinstall those other packages.