Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Консоль диспетчера пакетов в 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.
Быстрый поиск и установка пакета
Чтобы использовать консоль диспетчера пакетов для быстрого поиска и установки пакета, выполните следующие действия.
Откройте проект или решение в Visual Studio, и выберите Инструменты>Диспетчер пакетов NuGet>Консоль диспетчера пакетов чтобы открыть окно консоли диспетчера пакетов.
В консоли выполните
Find-Packageкоманду с ключевым словом, чтобы найти пакет, который требуется установить. Например, чтобы найти пакеты, предоставляющие модули ведения журнала ошибок и обработчики (ELMAH), выполните следующую команду, чтобы найти ключевое словоelmah. Если вы уже знаете имя пакета, пропустите этот шаг.Find-Package elmahПосле поиска пакета выполните
Install-Packageкоманду с идентификатором пакета, чтобы установить пакет. Например, чтобы установитьElmah.MVCпакет, выполните следующую команду:Install-Package Elmah.MVC
Дополнительные сведения об этих командах см. в разделе "Поиск пакета " и " Установка пакета ".
Подсказка
Многие операции консоли зависят от наличия в Visual Studio открытого решения с известным именем пути. Если у вас есть несохраненное решение или нет решения, появится сообщение об ошибке об отсутствии открытого или сохраненного решения. Чтобы исправить ошибку, создайте и сохраните решение или сохраните несохраненные решения.
Использование элементов управления консолью
Чтобы открыть консоль диспетчера пакетов в Visual Studio, перейдите в верхнем меню и выберите Средства>Диспетчер пакетов NuGet>Консоль диспетчера пакетов. Консоль — это окно Visual Studio, которое можно упорядочить и разместить по мере того, как вы хотите. Дополнительные сведения см. в разделе "Настройка макетов окон" и "Персонализация вкладок".
По умолчанию команды консоли работают с определенным источником пакета и проектом, отображаемым в элементах управления в верхней части окна консоли диспетчера пакетов:
Выбор другого источника пакета или проекта изменяет значения по умолчанию для последующих команд. Чтобы переопределить эти параметры для отдельных команд без изменения значений по умолчанию, большинство команд консоли поддерживают -Source и -ProjectName параметры.
Чтобы управлять источниками пакетов, выберите значок настроек, который открывает >диалоговое окно "Параметры" или "Диспетчер пакетов NuGet>" Источники пакетов. Чтобы очистить содержимое консоли, выберите "Очистить консоль
" рядом со списком проектов по умолчанию .
Чтобы прервать длинную команду, нажмите кнопку "Остановить выполнение
команды" рядом со значком "Очистить консоль ". Например, запуск Get-Package -ListAvailable -PageSize 500 выводит список из 500 самых популярных доступных пакетов в источнике по умолчанию, таком как nuget.org, что может занять несколько минут.
Найдите пакет
Чтобы найти пакет в источнике по умолчанию, используйте 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: создает или обновляет базу данных в соответствии с последней миграцией
Настройка профиля 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".