NU1100: невозможно разрешить пакет nuget Azure DevOps

У нас есть пакет nuget Azure DevOps, который без проблем использует другая служба, представляющая собой сетевой API. Однако когда этот пакет добавляется в рабочую службу, конвейер pr завершается сбоем на этапе «Восстановление зависимостей» с ошибкой NU1100.

Файл конвейера

trigger:
  branches:
    exclude:
      - '*'
  paths:
    include:
      - '*'

pr:
  branches:
    include:
      - '*'

pool:
  vmImage: ubuntu-latest

variables:
  - name: vmImageName
    value: 'ubuntu-latest'

stages:
  - stage: PR
    displayName: Build and test
    jobs:
      - job: Build
        displayName: Build
        pool:
          vmImage: $(vmImageName)
        steps:
          - task: UseDotNet@2
            displayName: 'Install .NET Core SDK'
            inputs:
              packageType: 'sdk'
              version: '8.x'
              performMultiLevelLookup: true

          - task: NuGetToolInstaller@1
            displayName: 'Install NuGet'
            inputs:
              versionSpec: '6.8.0'

          - task: NuGetAuthenticate@1
            displayName: 'NuGet Authenticate'

          - task: DotNetCoreCLI@2
            displayName: 'Restore Dependencies'
            inputs:
              command: 'restore'
              projects: '**/*.csproj'
              feedsToUse: 'config'
              nugetConfigPath: 'nuget.config'
              includeNuGetOrg: true
              noCache: true

          - task: DotNetCoreCLI@2
            displayName: 'Build'
            inputs:
              command: 'build'
              projects: '**/*.csproj'
              arguments: '--configuration $(buildConfiguration) --no-restore'

      - job: Test
        displayName: Test
        pool:
          vmImage: $(vmImageName)
          steps:
            - task: NuGetAuthenticate@1
              displayName: 'NuGet Authenticate'

            - task: DotNetCoreCLI@2
              displayName: "Run Unit Tests"
              inputs:
                command: test
                projects: '**/*.UnitTests.csproj'
                arguments: '--configuration $(buildConfiguration)'

nuget.config:

<?xml version = "1.0" encoding = "utf-8"?>

<configuration>
  <packageRestore>
    <add key = "enabled" value = "True" />
    <add key = "automatic" value = "True" />
  </packageRestore>

  <packageSources>
    <clear />
    <add key = "nuget.org" value = "https://api.nuget.org/v3/index.json" />
    <add key = "Custom"
         value = "https://pkgs.dev.azure.com/acme/guid/_packaging/Custom/nuget/v3/index.json" />
  </packageSources>

  <packageSourceCredentials>
    <NxPro>
      <add key = "Username" value = "build" />
      <add key = "ClearTextPassword" value = "%PAT%" />
    </NxPro>
  </packageSourceCredentials>
  <packageSourceMapping>
    <packageSource key = "Custom">
      <package pattern = "Custom.*" />
    </packageSource>
    <packageSource key = "nuget.org">
      <package pattern = "*" />
    </packageSource>
  </packageSourceMapping>
</configuration>

ошибка:

Build FAILED.

       "/home/vsts/work/1/s/src/Infrastructure/ServiceWorker.Infrastructure.csproj" (Restore target) (1) ->
       (Restore target) -> 
         /home/vsts/work/1/s/src/Infrastructure/ServiceWorker.Infrastructure.csproj : error NU1100: Unable to resolve 'Custom.Contracts (>= 1.0.31)' for 'net8.0'. PackageSourceMapping is enabled, the following source(s) were not considered: feed-Custom, nuget.org.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:07.64
##[error]Error: The process '/opt/hostedtoolcache/dotnet/dotnet' failed with exit code 1
##[error]Packages failed to restore
Info: Azure Pipelines hosted agents have been updated and now contain .Net 5.x SDK/Runtime along with the older .Net Core version which are currently lts. Unless you have locked down a SDK version for your project(s), 5.x SDK might be picked up which might have breaking behavior as compared to previous versions. You can learn more about the breaking changes here: https://docs.microsoft.com/en-us/dotnet/core/tools/ and https://docs.microsoft.com/en-us/dotnet/core/compatibility/ . To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting
Finishing: Restore Dependencies

Другая служба, использующая тот же пакет, имеет другой файл конвейера, в котором вместо восстановления DotNetCoreCli@2 используется NuGetCommand@2. Этот подход по непонятной мне причине не работал с этой службой и продолжал вызывать ошибку версии MsBuild.

The other service that uses the same package has a different pipeline... - есть ли различия между файлами nuget.config, используемыми в каждом решении?
Rui Jarimba 05.07.2024 14:15

У них абсолютно одинаковые nuget.config файлы

IbrahimD 05.07.2024 14:17

А как насчет версии .NET, используемой в обоих решениях? Это то же самое? В сообщении об ошибке написано Unable to resolve 'Custom.Contracts (>= 1.0.31)' for 'net8.0'.

Rui Jarimba 05.07.2024 14:19

Они оба используют net8.0

IbrahimD 05.07.2024 14:20
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ошибка NU1100: невозможно разрешить «Custom.Contracts (>= 1.0.31)» для «net8.0». PackageSourceMapping включен, следующие источники не учитывались: Feed-Custom, nuget.org.

Вместо DotNetCoreCLI@2 для восстановления пакета используйте dotnet restore command:

          - task: PowerShell@2
            displayName: 'dotnet restore'
            inputs:
              targetType: 'inline'
              script: 'dotnet restore **/yourproject.csproj --configfile **/nuget.config'
            env:
              PAT: $(token)

Подробности можно посмотреть в аналогичном билете.

Что касается информации .Net 5.x SDK/Runtime, то это не ошибка, а информация, которую вы можете прочитать.

Результат восстановления на моей стороне:

Я удалил `<packageSourceMapping>, но на этот раз это не удалось из-за этой ошибки: ``` /home/vsts/work/1/s/src/Core/ServiceWorker.Core.csproj: ошибка NU1507: предупреждение как ошибка: есть 2 пакета источники, определенные в вашей конфигурации. При использовании централизованного управления пакетами сопоставьте источники пакетов с помощью сопоставления источников пакетов (aka.ms/nuget-package-source-mapping) или укажите один источник пакета. Определены следующие источники: nuget.org, Feed-Custom ```

IbrahimD 05.07.2024 15:18

Я отменил это изменение и попробовал добавить только токен PAT, но в итоге получил исходную ошибку.

IbrahimD 05.07.2024 15:26

Вы можете добавить <packageSourceMapping>...</packageSourceMapping> обратно, но для восстановления пакета используйте команду dotnet restore YourProject.csproj --configfile ./path/to/nuget.config вместо DotNetCoreCLI@2. Я отредактирую ответ с подробностями.

wade zhou - MSFT 05.07.2024 16:24

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

Я хочу опубликовать zip-файл, а затем загрузить его непосредственно из канала Azure Artifact. Какая задача мне поможет в этом?
Как связать рабочие элементы для сборки конвейера yaml при использовании ветвей выпуска?
Термин «скрипт:» не распознается как имя командлета, функции, файла сценария или исполняемой программы
Ошибка обнаружения текущей ветки: фатальный: ref HEAD не является символической ссылкой в ​​выпуске mvn — Azure Pipeline
Как настроить проверку утверждения конвейера Azure для развертывания в приложениях-функциях Azure?
Ошибка: невозможно зарегистрировать свойство «TestType» как тип значения «System.Guid», поскольку оно уже зарегистрировано как «System.String»
Использование API Azure Devops в Python для получения всех измененных файлов в PR
Измените обработку заданий с FIFO на LIFO
Почему я получаю сообщение об ошибке: Ошибка: шаблон файла шаблона соответствует каталогу, а не файлу: /home/vsts/work/1/s в моем файле конвейера файлов yaml?
Azure DevOps REST API: сопоставить шаги ручного тестового примера с результатами тестового запуска?