Поделиться через


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

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

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

Это важно

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

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

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

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

Консоль диспетчера пакетов встроена в диспетчер пакетов для Visual Studio в Windows. Visual Studio Code не включает консоль, но для управления пакетами NuGet можно использовать расширение комплекта разработки на C# . С помощью этого расширения можно выполнять команды в обозревателе решений пакета разработки C# или в палитре команд Visual Studio Code. Дополнительные сведения см. в статье NuGet в Visual Studio Code.

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

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

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

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

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

    Install-Package Elmah.MVC
    

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

Подсказка

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

Использование элементов управления консолью

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

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

Снимок экрана: окно консоли диспетчера пакетов. В верхней части выделены списки источников пакетов и проектов по умолчанию.

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

Чтобы управлять источниками пакетов, выберите значок настроек, который открывает >диалоговое окно "Параметры" или "Диспетчер пакетов NuGet>" Источники пакетов. Чтобы очистить содержимое консоли, выберите "Очистить консоль " рядом со списком проектов по умолчанию .

Снимок экрана окна консоли диспетчера пакетов. В верхней части выделены два значка. Один показывает шестерёнку. Другой показывает выходные строки и красный X.

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

Снимок экрана: окно консоли диспетчера пакетов. Рядом с верхней частью выделен значок выполнения команды Stop, который выглядит как красный квадрат.

Найдите пакет

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

  • Поиск и вывод списка пакетов, содержащих определенное ключевое слово:

    Find-Package <keyword>
    
  • Поиск и вывод списка пакетов с идентификатором, начинающимся с определенной строки:

    Find-Package <string> -StartWith
    
  • Отображение первых 100 пакетов, содержащих определенное ключевое слово:

    Find-Package <keyword> -First 100
    

    По умолчанию Find-Package возвращается список из 20 пакетов. Как и в предыдущем примере, можно указать -First другое количество пакетов.

  • Список всех версий определенного пакета:

    Find-Package <package-name> -AllVersions -ExactMatch
    

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

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

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

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

Install-Package Elmah.MVC -ProjectName UtilitiesLib

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

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

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

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

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

  • Удалите пакет и все неиспользуемые зависимости:

    Uninstall-Package <package-name> -RemoveDependencies
    
  • Удалите пакет, даже если другие пакеты зависят от него:

    Uninstall-Package <package-name> -Force
    

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

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

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

    Get-Package -updates
    
  • Обновление определенного пакета:

    Update-Package <package-name>
    
  • Обновите все пакеты в проекте:

    Update-Package -ProjectName <project-name>
    
  • Обновите все пакеты в решении:

    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 с помощью консоли диспетчера пакетов.

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

Некоторые пакеты расширяют консоль диспетчера пакетов, добавляя команды. Например, Microsoft.EntityFrameworkCore.Tools пакет добавляет следующие команды:

  • Add-Migration: создает файл миграции для создания или обновления таблиц базы данных
  • Update-Database: создает или обновляет базу данных в соответствии с последней миграцией

Снимок экрана: окно консоли диспетчера пакетов. Выходные данные из команд Add-Migration и Update-Database отображают созданную базу данных.

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

Вы можете создать профиль 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".