Azure DevOps NuGet только для фида кэширует первую версию из апстрима - PullRequest
2 голосов
/ 06 февраля 2020

В Azure DevOps, в настоящее время у меня настроены два канала NuGet: основной канал и предварительный канал. Пререлизный канал настроен как основной источник первичного канала, где у меня часто загружаются предварительные версии пакетов, которые хранятся отдельно от того, что мы считаем финальными версиями в основном канале.

Я следовал документации настроить исходные коды, и это работает, но только для первой версии пакета. Поэтому, если пакет Foo.1.0.0-preview01 добавляется в предварительный канал и устанавливается через Visual Studio, он кэшируется в основной канал и пакет восстанавливается правильно и все.

Но как только я создаю Foo .1.0.0-preview02 в канале Prerelease и повторите шаги, описанные выше (установка через VS), новая версия не кэшируется в первичную ленту, как первая. Я пытался в течение нескольких дней с различными пакетами, и поведение было последовательным.

Любая помощь приветствуется.

Редактировать: Подробнее как запрос.

Точные шаги, которые я предпринял, следующие:

  1. Сконфигурируйте первичный канал и канал предварительного выпуска в качестве основного источника первичного потока. enter image description here
  2. Azure DevOps создает и отправляет пакет Foo.1.0.0-preview.20200207.1 в канал предварительной версии с помощью некоторого автоматизированного процесса. Это видно в пререлизе, но не в первичном. enter image description hereenter image description here
  3. В Visual Studio оба канала должны быть источниками пакетов. Это было сделано из-за обходного пути, предложенного в конце этого ответа StackOverflow: { ссылка } VS feeds
  4. Установите Foo.1.0.0-preview.20200207.1 с либо скопированная команда из Azure DevOps, либо пользовательский интерфейс диспетчера пакетов NuGet в Visual Studio. enter image description here
  5. Обратите внимание, что Foo.1.0.0-preview.20200207.1 теперь отображается в первичном фиде. enter image description here
  6. Внесите некоторые изменения в пакет Foo, и Azure DevOps создаст и поместит новый Foo.1.0.0-preview.20200115.2 в канал предварительного выпуска.
  7. Установите Foo.1.0.0-preview.20200207.2 с помощью диспетчера пакетов NuGet в Visual Studio. enter image description here
  8. Foo.1.0.0-preview20200207.2 не отображается в первичном фиде.

1 Ответ

0 голосов
/ 12 февраля 2020

С помощью LeoLiu-MSFT проблема, по-видимому, связана с тем, что в Visual Studio доступны как исходный (предварительный), так и основной источник (основной). Я удалил предварительный канал из VS, и он сработал.

У меня была настроена Visual Studio таким образом из-за предложенного обходного пути в конце этого ответа StackOverflow, которое позволило бы мне видеть некэшированные исходные пакеты в пакете NuGet Диспетчер: { ссылка }

После удаления исходного кода (в моем случае Prerelease), а затем запуска команды powershell для установки версии предварительного просмотра для первичного канала, казалось, что он заставил основной канал для поиска версий в исходных каналах, которых у него нет, и последующего кэширования.

...