我正在使用带有nuget feed的TFS 2017。
我在Feed中发布了我的软件包的新版本(非预发行版)后,假设是My.Package Version 1.0.1
,我需要等待大约30分钟才能恢复引用已发布软件包的项目。
否则,即使我在TFS Nuget Feed UI中看到version 1.0.1
,带有.net核心CLI(甚至带有dotnet restore
选项)的--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。
此延迟的原因是什么?
谢谢。
答案 0 :(得分:2)
NuGet保留一个HTTP缓存,该缓存用于加速对HTTP源的相同查询,并且缓存时间为30分钟。您可以使用nuget.exe locals http-cache -clear
或dotnet nuget locals http-cache --clear
清除它。不过,我无法解释预发布软件包的5分钟延迟。 TFS被推送后是否可能需要5分钟来摄取该软件包并将其在其提要搜索结果中可用?我不认为当您请求预发行版软件包时,NuGet会使它的http缓存更快地过期,但这听起来是可行的。