Проверьте, если источник nuget уже настроен - PullRequest
0 голосов
/ 16 октября 2018

Я хочу добавить ленту пакетов nuget, размещенную на нашем экземпляре TFS, на все рабочие станции наших разработчиков.Проблема, с которой я столкнулся, заключается в том, что если источник уже был добавлен, я получаю сообщение об ошибке The name specified has already been added to the list of available package sources. Please provide a unique name.

. Я хочу проверить, зарегистрирован ли на компьютере источник nuget перед запуском.код для добавления источника.Проверяя документацию для nuget.exe Я пытался использовать операцию List вместе с Name и Source, но я просто получаю тот же результат, как если бы я просто запускал nuget sources

Все эти команды:

nuget sources list -Source $myURL
nuget sources list -Name $myName
nuget sources

Вернуть тот же результат:

Registered Sources:

  1.  nuget.org [Enabled]
      https://api.nuget.org/v3/index.json
  2.  myPowershellFeed [Enabled]
    https://myURL.myDomain.org

Я использую Powershell для запуска этих команд и нашел обходной путь, но в идеале янадеясь, что есть опция командной строки nuget.exe, которая получит эту информацию для меня.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

В PowerShell v5 у вас есть доступ к модулю PackageManagement.Сюда входит поставщик пакетов NuGet:

$nuget = Get-PackageProvider -Name NuGet

Наряду с этим вы можете получить доступ ко всем своим источникам:

$nuget | Get-PackageSource

По умолчанию это будет иметь только nuget.org, но с добавленнымисточник (ы), вы также увидите их в результате выполнения этой команды.В качестве бонуса, поскольку это команда powershell, она возвращает объекты вместо строк, поэтому вы можете сделать следующее:

Get-PackageSource -Name myPowershellFeed |
    Format-List -Property * -Force

Для решения вопросов и ответов:

if (-not $(Get-PackageSource -Name myPowershellFeed -ProviderName NuGet -ErrorAction Ignore))
{
    # add the packagesource
0 голосов
/ 16 октября 2018

Вы можете использовать следующую строку:

$nugetHasMyUrlSource =!!(nuget source | ? { $_ -like "*$myUrl"})

Или даже инкапсулировать ее в функцию:

function HasNugetSource ($url){
    return !!(nuget source | ? { $_ -like "*$url"});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...