Как запустить установочный пакет командлета Nuget PowerShell в обычном сеансе PowerShell (не в Visual Studio)? - PullRequest
1 голос
/ 28 июня 2019

Я хочу заняться автоматизацией, и один из шагов - установить пакет Nuget для проекта Visual Studio C # . В Visual Studio я могу запустить команду Install-Package JetBrains.Annotations на панели Консоль диспетчера пакетов . Однако та же команда не работает в обычном сеансе PowerShell. Как я могу установить пакет для проекта Visual Studio C # в обычном сеансе PowerShell?

1 Ответ

2 голосов
/ 28 июня 2019

Я бы пошел с *-Package командлетами.Я сделал некоторые вещи для автоматизации с NuGet, где мне пришлось выбирать между командлетами NuGet CLI или PowerShell *-Package.Поскольку nuget list --allversion не работает с февраля 2017 года (см. билет GitHub ).Я решил использовать командлеты PowerShell.

С Документация по PowerShell :

PS> Install-Package -Name NuGet.Core -Source MyNuGet -Credential Contoso\TestUser

Возможно, вам придется определить имя поставщика в NuGet через -ProviderName:

Указывает одно или несколько имен провайдеров пакетов, в которые входит поиск в вашем пакете.Вы можете получить имена поставщиков пакетов, выполнив командлет Get-PackageProvider.

...

Допустимые значения: msi, Programs, msu, Bootstrap, PSModule, nuget, chocolatey

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

Ответ stackoverflow , помечающий этот вопрос как дубликат, относится либо к использованию Visual Studios, встроенных в консоль управления (который реализован в виде отдельного хоста Powershell и поэтому не может использоваться через стандартный PowerShell) или с помощью инструментов NuGet CLI (которые не покрывали все мои требования к автоматизации).Использование «* -Package` командлетов не распространяется на этот ответ.

UPDATE 1

Вот пример того, как установить log4Net пакет NuGet:

  Install-Package log4net -ProviderName NuGet -Source https://www.nuget.org/api/v2 -Scope CurrentUser -Force

Для получения дополнительной информации о том, что установлено в фоновом режиме, вы можете присоединить переключатель -Verbose.

Насколько я помню, вы используете API-интерфейс NuGet v2.

...