Как установить nuget в visual studio

Обновлено: 04.07.2024

В статье показано как установить NuGet и что это такое. Показаны примеры управления пакетами NuGet. Достаточно подробно и с картинками.

Если не установлен NuGet

Что такое NuGet не буду подробно рассказывать, разве что пару строк:

Со страниц официального сайта

“NuGet is a Visual Studio extension that makes it easy to install and update open source libraries and tools in Visual Studio.”

А теперь на русском

“Nuget – это одно из расширение Visual Studio, которое позволяет с легкостью устанавливать, обновлять и удалять библиотеки (сборки), компоненты, инструменты.”

Если у Вас не установлен это замечательное расширения для Visual Studio, давайте установим. Запускаем студию, идем в меню: Tools –> Extention Manager. Откроется окно менеджера, в этом окне в левой части выберим Online Gallery, менеджер покажет список доспуных расширений. По идеи, Вы должны сразу увидеть Nuget Package Manager. Но если Вы не увидели его, напишите в строке поиска этого менеджера слово “nuget” и тогда точно перед Вами будет менеджер.

extention_manager

У меня на картинке NuGet Manager отмечен зеленой галкой, которая говорит, что расширение уже установлено. Если Вы нажмете кнопку Install, у Вас появится такой же зеленый значок.

Как установить пакет (способ 1 “Визуальный”)

Я создал просто консольное приложение (просто для демонстрации). В Solution Explorer правой кнопкой мыши нажимаем на Preferences и в меню выбираем пункт Add Library Package references. Этот пункт меню должен появиться после установки менеджера пакетов NuGet.

image

В открывшемся окне, также как и в менеджере расширений для Visual Studio, есть список доступных галерей (слева). Хочу напомнить, что можно получать пакеты как с официального сайта (NuGet official package source), так и папки на своем компьютере, так и с NuGet-сервера локальной сети.

Я в поиске написал свой ник и увидел список доступных пакетов, которые я сделал сам:

image

Допустим, что я хочу в своё консольное приложение добавить несколько классов и наполнить их данными, чтобы поэкспериментировать с LINQ. Я выберу пакет SampleData и нажму Install. После установки пакет отметился зеленой галкой, а в списке сборок проекта появилась сборка SampleData, которая содержит классы и данные для них:

Если запустить приложение, то я увижу

Как установить NuGet-пакет (способ 2 “Для продвинутых”)

Давайте теперь создадим другое приложение, пусть оно тоже будет консольное. Теперь будем устанавливать Implementation a simple IoC, этот пакет я сделал тоже сам и для себя (но можете тоже пользовать на здоровье). После установки Nuget Package Manager в меню Visual Studio появились новые пункты, например, Tools –> Library Package Manager –> Package Manager Console.

image

Открыв консоль можно писать команды для менеджера:

image

Обратите внимание, что выпадающее окно Package source позволяет выбрать конкретный источник пакетов или использовать все доступные.

Напишу-ка я команду для установки моего пакета с IoC:

Команда NuGetInstall-Package SimpleIoC

Пакет установлен. У меня в приложении появился файл SimpleIoC.cs, который является реализацией паттерна IoC (Инверсия в управлении). Кстати, в приложении появился еще одни новый файл packages.config, который, как раз, и содержит информацию об установленных пакетах. У меня в приложении он имеет теперь вид:

Ясно всё и понятно, что отображает этот файл.

Использование пакетов

Хочу отметить некоторую специфику в работе с пакетами. Дело в том, что пакеты это нечто иное, как просто файлы подгруженные к Вашему проекту с учетом некоторых параметров. Например, мой файл SimpleIoC.cs появляется в проекте с учетов namespace. Процесс подмены шаблона используется тот же, что использует Visual Studio, при создании нового проекта из шаблона (или файла из шаблона). Про свойства в таких шаблонах можно почитать хранилище знаний.

NuGet “умеет” добавлять и удалять сборки, файлы, папки, но при одном условии. Если папка, файл или сборка не поменяла название (содержание). Раз уж я установил пакет, то я могу его и удалить:

После установки ссылаться на пакет в коде можно с помощью using <namespace> , где <namespace> соответствует используемому пакету. После указания ссылки можно обращаться к пакету посредством его интерфейса API.

Предварительные требования

Создание проекта

Visual Studio создаст проект и откроет его в обозревателе решений.

Добавление пакета NuGet Newtonsoft.Json

Для установки пакета можно использовать диспетчер пакетов NuGet или консоль диспетчера пакетов. При установке пакета NuGet регистрирует зависимость в файле проекта или файле packages.config (в зависимости от формата проекта). Дополнительные сведения см. в разделе Обзор использования пакетов и рабочий процесс.

Диспетчер пакетов NuGet

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

Пункт "Управление пакетами NuGet" для узла "Ссылки" проекта

Поиск пакета Newtonsoft.Json

См. подробнее о диспетчере пакетов NuGet в руководстве по установке пакетов и управлении ими с помощью Visual Studio.

Примите все запросы касательно лицензии.

(Только в Visual Studio 2017.) Если вам будет предложено выбрать формат управления пакетом, выберите PackageReference в файле проекта.

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

В запросе на проверку изменений нажмите кнопку ОК.

Консоль диспетчера пакетов

Последовательно выберите Сервис > Диспетчер пакетов NuGet > Консоль диспетчера пакетов.

После открытия консоли убедитесь, что в раскрывающемся списке Проект по умолчанию показан проект, в который требуется установить пакет. Если в решении всего лишь один проект, он автоматически выбран.

Введите команду Install-Package Newtonsoft.Json (см. сведения о ней в этой статье). В окне консоли отображаются выходные данные команды. Ошибки обычно означают, что пакет не совместим с целевой платформой проекта.

Использование интерфейса API Newtonsoft.Json в приложении

Добавив пакет Newtonsoft.Json в проект, вы можете вызывать его метод JsonConvert.SerializeObject для преобразования объекта в удобную для восприятия строку.

Откройте файл MainWindow.xaml и замените существующий элемент Grid следующим кодом:

Откройте файл MainWindow.xaml.cs (который находится в обозревателе решений в узле MainWindow.xaml ) и вставьте в класс MainWindow следующий код.

Несмотря на то что вы добавили пакет Newtonsoft.Json в проект, JsonConvert подчеркивается красной волнистой линией, так как оператор using требуется в верхней части файла кода.

Выполните сборку и запустите приложение, нажав клавишу F5 или выбрав команду Отладка > Начать отладку.

Чтобы работать с NuGet в качестве потребителя или создателя пакета, вы можете использовать средства интерфейса командной строки (CLI) и функции NuGet в Visual Studio. В этой статье кратко описываются возможности различных средств, их установка и приведена сравнительная таблица доступности функций. См. подробнее о начале работы с пакетами с помощью NuGet в руководствах по установке и использование пакета с помощью CLI dotnet и Visual Studio. Чтобы приступить к созданию пакетов NuGet, см. разделы Создание и публикация пакета NET Standard (dotnet CLI) и Создание и публикация пакета NET Standard (Visual Studio).

MSBuild CLI также предоставляет возможности восстановления и создания пакетов, которые применяются на серверах сборки. MSBuild не является универсальным средством для работы с NuGet.

Команды консоли диспетчера пакетов работают только в Visual Studio для Windows, но не в других средах PowerShell.

Visual Studio

Установка в Visual Studio 2017 и более поздних версиях

Установка в Visual Studio 2015 и более ранних версиях

Для Visual Studio 2010 и более ранних версий установите расширение "Диспетчер пакетов NuGet для Visual Studio". Обратите внимание, что если расширение не отображается на первой странице результатов поиска, можно изменить значение в раскрывающемся списке "Sort By" (Сортировка по) на "Most Downloads" (Больше всего скачиваний) или сортировку по алфавиту.

Средства CLI

Два средства CLI для NuGet — dotnet.exe и nuget.exe . См. сравнительную таблицу доступности функций.

Интерфейс командной строки dotnet.exe

Сведения об использовании основных команд с CLI dotnet см. в статье Установка и использование пакета с помощью CLI dotnet.

Интерфейс командной строки nuget.exe

Интерфейс командной строки nuget.exe ( nuget.exe ) — это программа командной строки для Windows, которая предоставляет все возможности NuGet. С некоторыми ограничениями ее также можно запустить на Mac OSX и Linux с помощью Mono.

Сведения об использовании основных команд с CLI nuget.exe см. в статье Установка и использование пакета с помощью CLI nuget.exe.

Windows

Mac OS и Linux

Поведение для этих ОС может несколько различаться.

В командной строке оболочки введите следующие команды:

Создайте псевдоним, добавив следующий скрипт к соответствующему файлу для вашей операционной системы (обычно

Перезагрузите оболочку. Проверьте установку. Для этого введите nuget без параметров. Должно отобразиться окно справки NuGet CLI.

Вы можете обновить существующий nuget.exe до последней версии с помощью команды nuget update -self в Windows.

Доступность функций

Функция CLI dotnet CLI nuget (Windows) CLI nuget (Mono) Visual Studio (Windows) Visual Studio для Mac
Поиск пакетов
Установка или удаление пакетов ✔(1)
Обновление пакетов
Восстановление пакетов ✔(2)
Управление веб-каналами пакета (источниками)
Управление пакетами в веб-канале
Установка ключей API для веб-каналов
Создание пакетов (3) ✔ (4)
Публикация пакетов
Репликация пакетов
Управление папками global-package и кэша
Управление конфигурацией NuGet

(1) Не влияет на файлы проекта. Используйте dotnet.exe .

(2) Работает только с файлом packages.config , а не с файлами решения ( .sln ).

(3) Различные дополнительные функции пакетов доступны через CLI, только если они не представлены в средствах пользовательского интерфейса Visual Studio.

(4) Работает с файлами .nuspec , но не с файлами проекта.

Будущие возможности

Если вы хотите заранее оценить предстоящие возможности NuGet, установите предварительную версию Visual Studio, которая работает параллельно со стабильными выпусками Visual Studio. Чтобы сообщить о проблемах или обменяться идеями о предварительных версиях, откройте обращение в репозитории NuGet на GitHub.

См. также

Разработчики, работающие в Windows, также могут рассмотреть Обозреватель пакетов NuGet, автономное средство с открытым кодом, позволяющее визуально изучать, создавать и изменять пакеты NuGet. Это очень удобно, например, для внесения экспериментальных изменений в структуру пакета без необходимости его повторной сборки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Технически NuGet Manager представляет собой расширение для Visual Studio, доступное программисту в процессе работы над своим проектом. Если вы используете «студию» версии 2012 и выше, то NuGet уже заранее предустановлен и готов к работе. В случае версии 2010 его нужно установить вручную. Его можно скачать либо с официального сайта, либо установить напрямую из Visual Studio через менеджер дополнений.

Давайте откроем менеджер. Для этого в Solution Explorer щелкаем правой кнопкой мыши по рабочему проекту и в контекстном меню выбираем пункт «Manage NuGet Packages…»:


NuGet Manager открывается в новой вкладке в текстовом редакторе. Интерфейс у него довольно простой.

Три главные вкладки:

  1. Browse. Найти и установить нужные нам пакеты из хранилища NuGet
  2. Installed. Список уже установленных в нашем проекте библиотек
  3. Updates. Библиотеки в нашем проекте, которые можно обновить до новой версии

Также в интерфейсе менеджера представлены:

  1. Строка поиска. Мы можем искать нужную нам библиотеку, начав вводить ее название
  2. Кнопка «Обновить состояние окна»
  3. Галочка «Включать в выдачу предрелизные версии библиотек», например, какие-то тестовые или экспериментальные
  4. Выпадающий список Package source. В каком месте менеджер будет искать нужные нам библиотеки
  5. Кнопка «Настройки менеджера»
  6. Главная панель с результатами выдачи (слева)
  7. Панель с описанием того компонента, который мы выбрали (справа)


Попробуем установить какую-нибудь библиотеку к нам в проект, например, Entity Framework. Для этого переходим во вкладку Browse и в строке поиска начинаем вводить название нужного пакета. Далее выбираем его из списка и нажимаем кнопку Install. При необходимости можно выбрать определенную версию, отличную от стабильной последней, а также ознакомиться с информацией о данном пакете (авторы, лицензия и т.д.).


В зависимости от устанавливаемого пакета NuGet Manager также определит все его зависимости, или, другими словами, все дополнительные библиотеки, которые требуются устанавливаемому пакету для полноценной работы. В случае с Entity Framework таких зависимостей нет.


Теперь давайте более детально посмотрим, что конкретно сделал менеджер при установке этого компонента в наш проект:
1. Он определил, что для данного пакета нет никаких сторонних зависимостей. Если бы они были, то менеджер автоматически их определил и подтянул.
2. NuGet Manager добавил ссылку на установленный компонент в наш проект (References):


3. NuGet разместил скачанные файлы в специальной папке Packages, которая находится в корневой папке нашего приложения. Это очень удобно, ссылки в проекте теперь идут на эту папку:


4. В конфигурационный файл packages.config была добавлена запись о новом пакете:

5. В конфигурационный файл приложения web.config также были внесены необходимые изменения, чтобы подготовить компонент Entity Framework к работе:

Вот такие операции происходят, когда NuGet Manager добавляет новую библиотеку к нам в проект.

Подобным образом происходит и обновление, и удаление компонентов из нашего проекта. В случае удаления менеджер также автоматически вносит изменения в файлы нашего проекта – убирает записи из файла packages.config, удаляет соответствующие файлы в папке packages, убирает ссылки на эти библиотеки.

Давайте рассмотрим еще несколько моментов.

С NuGet Manager можно работать не только через графический интерфейс, но и через командную строку (консоль). Чтобы ее открыть, идем Tools -> NuGet Package Manager -> Package Manager Console.


Работа в консоли ничем не отличается от работы в графическом интерфейсе, это дело вкуса.

Управление осуществляется посредством специальных команд. Чтобы вывести в консоль список всех доступных команд нужно написать инструкцию:

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

Добавляем пакет Entity Framework в текущий проект:

Обновляем ранее установленный пакет:

Переустанавливаем ВСЕ пакеты во всех проектах в данном решении:

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

В видео версии этого урока более подробно и наглядно показана работа с этим инструментом.

Читайте также: