Cake build.ps1 не удается установить Cake

Мы используем стандартный скрипт PowerShell build.ps1, поставляемый с Cakebuild.net

Он отлично работал как на CI, так и на машинах разработчиков, но для одного из наших разработчиков при запуске build.ps1 мы получаем следующую ошибку

Unable to find package 'Cake'

И затем выходит, проверяя папку инструментов, там не установлен Cake.

1 ответ

Решение

Вы получаете ошибку, потому что консоль NuGet не может найти пакет Cake среди настроенных каналов на машине.

Вы можете проверить эту теорию, изменив следующую строку в build.ps

$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""

к

$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`" -Source `"https://www.nuget.org/api/v2`""

Если это работает, возможно, у вашего коллеги нет машины или на его машине отключены стандартные каналы nuget.org.

Вы можете перечислить, какие источники вы настроили, используя консоль NuGet, как это (если у вас нет консоли nuget в пути, она должна быть доступна в папке инструментов репо)

nuget sources list

Затем он должен перечислить ленту v2 и / или v3 для nuget.org, и они должны иметь текст [Enabled] после них как ниже

Registered Sources:

  1.  https://www.nuget.org/api/v2/ [Enabled]
      https://www.nuget.org/api/v2/
  2.  https://api.nuget.org/v3/index.json [Enabled]
      https://api.nuget.org/v3/index.json

Если они перечислены, но отключены, вы можете включить их, набрав

nuget source enable -Name https://www.nuget.org/api/v2/

Или же

nuget source enable -Name  https://api.nuget.org/v3/index.json

В зависимости от того, какой канал вы зарегистрировали и отключили, если источники отсутствуют, вы можете добавить их, набрав

nuget sources add -Name https://www.nuget.org/api/v2/ -Source  https://www.nuget.org/api/v2/

Настройки хранятся в %AppData%\NuGet\NuGet.config так что вы можете вручную редактировать этот файл, чтобы убедиться, что все используют одни и те же источники в команде, вы можете добавить NuGet.config в корень репозитория, поскольку nuget пытается найти конфигурацию в пути, а затем возвращается к данным приложения.

Другие вопросы по тегам