Управление пакетами с помощью консоли диспетчер пакетов Visual Studio (PowerShell)

Консоль диспетчер пакетов в Visual Studio использует команды PowerShell для взаимодействия с пакетами NuGet. Консоль можно использовать, если нет способа выполнить операцию с помощью пользовательского интерфейса диспетчер пакетов. Вы также можете использовать команды dotnet CLI или NuGet CLI в консоли.

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

Внимание

Команды и аргументы PowerShell в этой статье относятся к консоли диспетчер пакетов Visual Studio. Эти команды отличаются от команд модуля PackageManagement, которые можно использовать в общей среде PowerShell. Каждая среда имеет команды, недоступные в другой среде, и команды с одинаковым именем могут отличаться в своих конкретных аргументах.

Доступность консоли

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

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

Консоль диспетчер пакетов встроена в диспетчер пакетов для Visual Studio в Windows. Visual Studio Code и Visual Studio для Mac не включают консоль. Visual Studio для Mac имеет пользовательский интерфейс для управления пакетами NuGet, а эквивалентные команды консоли доступны через Интерфейс командной строки NuGet. Дополнительные сведения см. в статье об установке пакетов NuGet и управлении ими в Visual Studio для Mac.

Быстрое поиск и установка пакета

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

  1. Откройте проект или решение в Visual Studio и выберите Сервис>NuGet диспетчер пакетов> диспетчер пакетов консоль, чтобы открыть окно консоли диспетчер пакетов.

  2. В консоли введите Find-Package ключевое слово, чтобы найти пакет, который требуется установить. Например, чтобы найти пакеты, содержащие ключевое словоelmah, выполните следующую команду. Если вы уже знаете имя пакета, пропустите этот шаг.

    Find-Package elmah
    
  3. Найдя имя, используйте Install-Package команду для установки пакета. Например, чтобы установить Elmah.MVC пакет, введите:

    Install-Package Elmah.MVC
    

Дополнительные сведения об этих командах см. в разделе "Поиск пакета " и "Установка пакета ".

Совет

Многие операции консоли зависят от наличия решения с именем известного пути, открытого в Visual Studio. Если у вас есть несохраненные решения или нет решения, вы увидите, что решение об ошибке не открыто или не сохранено. Убедитесь, что у вас есть открытое и сохраненное решение. Чтобы исправить ошибку, создайте и сохраните решение или сохраните несохраненные решения.

Элементы управления консолью

Чтобы открыть консоль диспетчер пакетов в Visual Studio, выберите "Сервис>NuGet диспетчер пакетов> диспетчер пакетов консоль" в верхнем меню. Консоль — это окно Visual Studio, которое можно упорядочить и разместить по мере того, как вы хотите. Дополнительные сведения см. в статье Настройка макетов окон в Visual Studio.

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

Screenshot that shows the Package Manager Console controls for package source and project.

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

Чтобы управлять источниками пакетов, выберите значок шестеренки, в котором откроется диалоговое окно "Параметры>инструментов>" NuGet диспетчер пакетов> Package Sources. Элемент управления рядом с селектором проекта очищает содержимое консоли.

Screenshot that shows the Package Manager Console settings and clear controls.

Кнопка в правом верхнем углу прерывает долго выполняющуюся команду. Например, при выполнении Get-Package -ListAvailable -PageSize 500 перечислены первые 500 доступных пакетов в источнике по умолчанию, например nuget.org, что может занять несколько минут.

Screenshot that shows the Package Manager Console stop control.

Поиск пакета

Чтобы найти пакет в источнике по умолчанию, используйте find-Package.

  • Чтобы найти и перечислить пакеты, содержащие определенные ключевое слово:

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • Поиск и перечисление пакетов, имя которых начинается со строки:

    Find-Package <string> -StartWith
    
  • По умолчанию Find-Package возвращается список из 20 пакетов. Используется -First для отображения дополнительных пакетов. Например, чтобы отобразить первые 100 пакетов, используйте следующую команду:

    Find-Package <keyword> -First 100
    
  • Список всех версий определенного пакета:

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Установка пакета

Чтобы установить пакет в проект по умолчанию, используйте Install-Package <PackageName>. Команда консоли install-Package выполняет следующие действия:

  • Выполняет действия, описанные в разделе "Что происходит при установке пакета NuGet".
  • Отображает применимые условия лицензии в окне консоли с подразумеваемым соглашением. Если вы не согласны с условиями, удалите пакет.
  • Добавляет ссылку на пакет в файле проекта и в Обозреватель решений в узле "Ссылки". Перед просмотром изменений в файле проекта необходимо сохранить проект.

По умолчанию добавляет пакет в проект по умолчанию Install-Package , указывающее окно консоли. Чтобы добавить пакет в проект, который не является стандартным, используйте -ProjectName этот параметр. Например, чтобы добавить пакет в проект, отличный Elmah.MVC от по умолчанию UtilitiesLib , выполните следующую команду:

Install-Package Elmah.MVC -ProjectName UtilitiesLib

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

Чтобы удалить пакет из проекта по умолчанию, используйте Uninstall-Package <PackageName>. Если вам нужно найти имя пакета, используйте get-Package , чтобы просмотреть все пакеты, установленные в проекте по умолчанию.

Удаление пакета выполняет следующие действия:

  • Удаляет ссылки на пакет из проекта и любые форматы управления. Ссылки больше не отображаются в обозревателе решений Возможно, потребуется перестроить проект, чтобы удалить ссылку в папке bin .
  • Отменяет любые изменения, устанавливающие пакет в app.config или web.config.
  • Удаляются ранее установленные зависимости, если остальные пакеты не используют эти зависимости.

Чтобы удалить пакет и все неиспользуемые зависимости, выполните следующую команду:

Uninstall-Package <PackageName> -RemoveDependencies

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

Uninstall-Package <PackageName> -Force

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

Чтобы обновить пакет, используйте get-Package и Update-Package. Вы можете выполнить следующие команды:

  • Чтобы проверка, если для всех установленных пакетов доступны новые версии:

    Get-Package -updates
    
  • Чтобы обновить конкретный пакет, выполните указанные действия.

    Update-Package <PackageName>
    
  • Чтобы обновить все пакеты в проекте, выполните приведенные далее действия.

    Update-Package -ProjectName <ProjectName>
    
  • Чтобы обновить все пакеты в решении, выполните следующие действия.

    Update-Package
    

Использование интерфейса командной строки NuGet в консоли

Вы также можете выполнять большинство операций консоли с помощью интерфейса командной строки NuGet. Однако команды консоли PowerShell работают в контексте сохраненного проекта и решения Visual Studio и часто выполняют больше, чем их эквивалентные команды Интерфейса командной строки NuGet. Например, при установке пакета с помощью Install-Package добавляется ссылка на файл проекта, но команда NuGet CLI не выполняется. По этой причине разработчики, работающие в Visual Studio, обычно предпочитают использовать команды консоли, а не интерфейс командной строки NuGet.

Чтобы использовать команды Интерфейса командной строки NuGet в консоли диспетчер пакетов, установите пакет NuGet.CommandLine.

Install-Package NuGet.CommandLine

Предыдущая команда устанавливает последнюю версию интерфейса командной строки NuGet. Чтобы установить определенную версию, используйте -Version этот параметр. Например, чтобы установить версию 4.4.1, введите:

Install-Package NuGet.CommandLine -Version 4.4.1

После установки NuGet.CommandLine пакета можно выполнить все команды интерфейса командной строки NuGet через консоль диспетчер пакетов.

Расширение консоли диспетчера пакетов

Некоторые пакеты устанавливают новые команды для консоли. Например, создает такие команды, MvcScaffolding как Scaffoldсоздание контроллеров и представлений MVC ASP.NET:

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

Настройка профиля PowerShell NuGet

Вы можете создать профиль PowerShell, чтобы сделать часто используемые команды доступными во всех контекстах PowerShell, поэтому параметры PowerShell между сеансами не теряются. NuGet поддерживает профиль NuGet, как правило, в %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Чтобы найти расположение профиля пользователя, введите $profile в консоли:

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

Чтобы определить, существует ли профиль в этом расположении, введите test-path $profile. Если команда возвращается False, необходимо создать профиль с указанным именем в этом расположении. Дополнительные сведения см. в разделе "Профили Windows PowerShell".

Следующие шаги