Я работаю над конвейером Azure для запуска на локальном агенте Windows. Мы настроили фид Artefact с восходящим потоком для подключения к Nuget. Поскольку мы находимся за брандмауэром, кажется, что это единственный способ подключиться к Nuget.
Мой конвейер работал с этим файлом nuget.config:
<packageSources>
<clear />
<add key = "FeedName" value = "https://***.pkgs.visualstudio.com/***/_packaging/FeedName/nuget/v3/index.json" />
</packageSources>
И этот YAML:
- task: NuGetAuthenticate@0
- task: CmdLine@2
inputs:
script: '"C:\dotnet\dotnet.exe" publish ${{ parameters.solutionToPublishPath }} -c ${{ parameters.buildConfiguration }} -o $(Build.BinariesDirectory)'
Файл nuget.config ломает предыдущие конвейеры в TeamCity!! Чтобы старая версия работала, пока я работаю над новой, я ищу способ перенести информацию из файла nuget.config в сценарий.
Является ли это возможным ?
Я пробовал с этим:
- task: CmdLine@2
inputs:
script: '"C:\dotnet\dotnet.exe" add "src/project/project.API.csproj" package FeedName -s https://***.pkgs.visualstudio.com/***/_packaging/FeedName/nuget/v3/index.json'
Я получаю это сообщение, которое для меня указывает на то, что он попытался связаться с Nuget напрямую и потерпел неудачу, поэтому мы используем канал.
error: Unable to load the service index for source https://api.nuget.org/v3/index.json.
error: Response status code does not indicate success: 302 (Moved Temporarily).
Спасибо за любую помощь
Спасибо, я не был тем, кто работал в TeamCity, но кажется, что, поскольку FeedName в файле nuget переходит в фид Azure, ему не разрешено достигать URL-адреса, им никогда не удается заставить TeamCity обновлять пакеты nuget, потому что безопасность здесь очень ограничительно, в то время они решили локально скопировать пакеты nuget. Переименование файла в "___nuget.config" исправило TeamCity и сломало Azure. Мне придется работать в другой ветке, пока мы не уйдем из TeamCity.
Вы имеете в виду, что у вас есть решение для вашей проблемы? Если это так, вы можете добавить ответ и Принять его как ответ, это может быть полезно другим членам сообщества, читающим эту тему.
Вы можете проверить расширение Заменить токены, чтобы узнать, поможет ли оно вам. Он может заменять токены в файлах значениями переменных во время конвейера.
Я бы не назвал это решением, поскольку я не могу переместить информацию nuget.config из файла в командную строку, я удалю файл, чтобы Team City мог работать, и верну его при запуске конвейеров Azure. Спасибо.
Вы можете добавить это <disabledPackageSources> <add key = "FeedName" value = "true" /> </disabledPackageSources>
в свой nuget.config, чтобы отключить этот канал, или вы можете просто удалить его из своего репо.
Мы переопределяем Nuget.config в сценарии конвейера Azure DevOps с помощью DotNetCoreCLI@2 и restoreArguments.
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: 'restore'
projects: |
$(buildProjects)
!$(testProjects)
restoreArguments: --source https://api.nuget.org/v3/index.json --source $(Build.SourcesDirectory)/Nugets
Не могли бы вы уточнить «Файл nuget.config нарушает предыдущие конвейеры в TeamCity»? Вы имеете в виду, что параметр nuget.config влияет на другую сборку?