我正在使用TFS 2017,带有nuget feed。
在我在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分钟。 E.g在我发布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。
造成这种延误的原因是什么?
谢谢。
NuGet保留了一个HTTP缓存,用于加速对HTTP源的相同查询,缓存时间为30分钟。你可以使用nuget.exe locals http-cache -clear
或dotnet nuget locals http-cache --clear
清除它。我无法解释预发行套餐的5分钟延迟。是否有可能TFS在推送后需要5分钟来摄取包,并在其搜索结果中使其可用?我不相信NuGet在您请求预发布包时会更快地使其http缓存过期,但这听起来是可行的。