Я настроил канал артефактов в Azure Devops и отправил в него некоторые из наших частных пакетов с помощью «nuget.exe push».
У меня есть проблема в том, что некоторые пакеты имеют несколько версий (например, 1.1, 1.2, 1.3 и т. Д.), И у нас есть ряд проектов, в которых некоторые будут использовать 1.1, некоторые - 1.2 и т. Д.
После загрузки версий 1.1, 1.2 и 1.3 в ленту артефактов для моих проектов доступна только 1.3, так как это последняя версия. Если я нажму на загруженный пакет в интерфейсе Devops, я увижу предыдущие версии, но ни один из проектов DevOps, использующих 1.1 или 1.2, не будет собран, поскольку они не могут найти более старые версии.
Я читал в нескольких местах, что можно обойтись одним фидом артефактов для каждого проекта с необходимыми версиями, помещенными в этот фид. Проблема, с которой я столкнулся, заключается в том, что я упростил масштаб своей проблемы, поскольку на самом деле у нас есть около 20 пакетов, каждый из которых может иметь до 30 различных версий, а у меня около 50 проектов. Создание канала для каждого из них заняло бы очень много времени и потребовало бы дублирования большого количества пакетов, когда я их отправляю.
Если я добавляю какой-либо пакет в проект из nuget, я могу выбрать, какую версию я хочу добавить, но похоже, что я не могу воспроизвести это при использовании канала артефактов. Я делаю это неправильно или есть лучший способ добиться того, что мне нужно?
РЕДАКТИРОВАТЬ:
Я не использую канал уровня проекта, он указан в Devops как канал уровня организации.
Файл packages.config специально нацелен на определенную версию, например.
<package id="CommonResourceAssembly" version="2.17.60.0" targetFramework="net451" />
и журнал ошибок показывает, что не может найти эту версию:
##[error].nuget\NuGet.targets(103,9): Error : Unable to find version '2.17.60.0' of package 'CommonResourceAssembly'.
Сам канал показывает, что версия 2.17.61 является текущей, но 2.17.60 - это то, что необходимо для этого конкретного проекта, и она отображается в истории версий: