TFS 2017 - Nuget feed - Задержка перед восстановлением принимает последнюю версию пакета - PullRequest
1 голос
/ 15 апреля 2019

Я использую TFS 2017, с фидом Nuget.

После того, как я опубликовал новую (не предварительную) версию своего пакета в канале, скажем, My.Package Version 1.0.1, мне нужно подождать около 30 минут, прежде чем восстанавливать проект, который ссылается на опубликованный пакет.

В противном случае, и даже если я вижу version 1.0.1 в пользовательском интерфейсе ленты новостей TFS, dotnet restore с CLI ядра .net (и даже с опцией --force) игнорирует новую версию и принимает последний предварительный выпускверсия, например My.Package Version 1.0.1-2019041501

Ссылка на пакет csproj включает в себя подстановочный знак для предварительной версии.

<PackageReference Include="My.Package" Version="1.0.1-*" />

То же самое происходит и между двумя предварительными версиями, но с задержкой только на 5 минут,Например, после публикации My.Package Version 1.0.1-2019041502 мне нужно подождать 5 минут, в противном случае восстановление займет My.Package Version 1.0.1-2019041501.

Проект пакета Nuget использует .Net Standard 2.0.3 и ссылается на использование проекта .Net Core 2.2.

В чем причина этой задержки?

Thx.

1 Ответ

2 голосов
/ 15 апреля 2019

NuGet хранит кеш HTTP, который он использует для ускорения идентичных запросов к источникам HTTP, и период кеширования составляет 30 минут.Вы можете очистить его, используя nuget.exe locals http-cache -clear или dotnet nuget locals http-cache --clear.Я не могу объяснить 5-минутную задержку на предварительных версиях.Возможно ли, чтобы TFS потребовалось 5 минут для загрузки пакета после его отправки и сделать его доступным в результатах поиска по каналам?Я не верю, что NuGet истекает через http-кеш быстрее, когда вы запрашиваете пререлизные пакеты, но это кажется возможным.

...