Почему моему конвейеру разработки Azure не удается восстановить пакет? - PullRequest
1 голос
/ 07 октября 2019

Я использую Azure Dev Ops для работы с моим веб-приложением ASP.NET Core. Я настраиваю конвейер, но получаю ошибки. Ошибки возникают из-за проблемы с восстановлением пакетов, так как мое приложение использует библиотеку KendoUI, которую я должен создать для служебного подключения для необходимых частных пакетов NuGet. После этого сборка все еще не удается, и мне было интересно, что происходит?

Сообщение об ошибке

[error] Сбой команды nuget с кодом выхода(1) и ошибка (NU1102: невозможно найти пакет Telerik.UI.for.AspNet.Core с версией (> =

2019.2.619) - Найдено 1 версий в NuGetOrg [Ближайшая версия: 2016.3.914] Ошибки в d: \ a \ 1 \ s \ MyCompany \ MyProject.UI.csproj NU1102: не удается найти пакет Telerik.UI.for.AspNet.Core с версией (> = 2019.2.619) - найдена 1 версия (s) в NuGetOrg [Ближайшая версия: 2016.3.914])

[ошибка] Пакеты не удалось восстановить

Я говорил с поддержкой Telerik, которая сказала, что приведенный выше код вызван тем, чтосбой в аутентификации, и это заставляет систему искать более старую версию, которая вызывает эту проблему совместимости. Меня попросили проверить мою аутентификацию, которая у меня есть, но эта ошибка сохраняется.

Я следовал документации Telerik о том, как этого добиться, которую вы можете найти здесь: https://www.telerik.com/blogs/azure-devops-and-telerik-nuget-packages

Хорошо,Для начала мой проект имеет файл nuget.config, расположенный в его корневом каталоге. Содержимое файла:

nuget.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSources>
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
    <add key="Telerik" value="https://nuget.telerik.com/nuget" />
  </packageSources>
  <packageSourceCredentials>
    <Telerik>
      <add key="Username" value="me@mybusiness.com" />
      <add key="ClearTextPassword" value="MyFunkYPassword19!" />
    </Telerik>
  </packageSourceCredentials>
</configuration>

В Azure Dev Ops я создал подключение к службе способом, описанным в их документации, котораяимеет имя пользователя и пароль в качестве кода выше

Service Connection

В моем конвейере я добавил пакет Nuget, который настроен на восстановление с использованием моего сервисного соединениявыше.

# Build and test ASP.NET Core projects targeting the full .NET Framework.

# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:

- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: 'MyProject/nuget.config'
    externalFeedCredentials: 'Telerik NuGet'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

Настройки для вышеуказанного шага конвейера следующие:

Pipeline Step Settings

Есть ли у кого-нибудь какие-либо идеи о том, что происходитвключен, мои настройки неверны?

1 Ответ

1 голос
/ 07 октября 2019

Мне удалось получить эту работу случайно. Это был порядок шагов, которые вызывали проблему. Вывод сборки показал, что независимо от того, что я делал, конвейер просматривал файл tempNuget.config, а не тот, который я указал. Поскольку в работе есть два шага NuGet, я переместил Telerik вверх на один уровень, и это позволило системе использовать правильный файл nuget.config вместо просмотра временного файла, который он создавал.

Вот измененныешаги, которые заставили его начать работать, обратите внимание, что шаг Telerik был перемещен на один шаг вверх.

# Build and test ASP.NET Core projects targeting the full .NET Framework.

# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:

- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: 'MyProject/nuget.config'
    externalFeedCredentials: 'Telerik NuGet'
- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'           
- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...