Как правильно настроить libray класса ядра dotnet для публикации в ленте NuGet в Azure DevOps?

#.net #.net-core #azure-devops

#.net #.net-core #azure-devops

Вопрос:

Я создал тестовый проект для публикации в моей ленте NuGet (в разделе Артефакты), но я получаю ошибку на этапе отправки dotnet. Я использовал редактор classid и шаги по умолчанию в шаблоне ядра dotnet и добавил новый шаг ядра dotnet с помощью nuget push команды. Я получаю это сообщение об ошибке:

Ни один пакет не соответствовал шаблону поиска.

Ответ №1:

Как правильно настроить libray класса ядра dotnet для публикации в ленте NuGet в Azure DevOps?

Когда вы получили эту ошибку «Ни один пакет не соответствует шаблону поиска«, это означает, что nuget push задача не получила файл пакета nuget. Возможно, пакет не сгенерирован или неверен путь к пакетам NuGet для публикации.

Итак, чтобы решить эту проблему, сначала нам нужно убедиться, что мы сгенерировали этот пакет nuget. Чтобы сгенерировать пакет, нам нужно добавить nuget pack task в конвейер или добавить следующее свойство в файле проекта .csproj:

   <PropertyGroup>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  </PropertyGroup
  

Мы могли бы проверить, сгенерирован ли этот пакет из журнала сборки или с помощью copy и publish build artifacts задачи.

Если пакеты сгенерированы, нам нужно проверить, правильный ли путь к пакетам NuGet для публикации, я установил его как $(System.DefaultWorkingDirectory)/**/*.nupkg , и он работает нормально:

введите описание изображения здесь

введите описание изображения здесь

Примечание: Если вы используете задачу nuget pack для создания пакета, путь к пакетам NuGet для публикации должен быть путем к папке пакета в задаче nuget pack.

Надеюсь, это поможет.

Комментарии:

1. Перед этим у меня есть шаг с пакетом dotnet. Я определил, что это как-то связано с целевой платформой netstandard2.0. Я смог заставить его корректно работать с проектом netcoreapp2.1. Когда я упаковываю проект netstandard2.0, он помещает сборку в папку bin вместе со всеми зависимостями, и я получаю эту ошибку: C:Program Файлы dotnet sdk 2.2.104 Sdks NuGet. Сборка. Задачи. Упаковать построить NuGet. Сборка. Задачи.Пакет.цели(202,5): ошибка NU5026: файл ‘D:a1sSharedbinDebugnetstandard2.0Shared. на диске не найдена библиотека dll, подлежащая упаковке. [D:a1sSharedShared.csproj ]

Ответ №2:

Проблема, похоже, заключалась в версиях .netstandard SDK, на которые ссылался проект. Я обновил все с 2.0 до 2.2, и команда dotnet pack теперь работает.