Nuget:CI包的工作流程?

时间:2018-01-18 13:40:39

标签: nuget

我有一个私有的NuGet Feed,我发布了包A. A具有类似4.0.0.X的版本(其中X是内部版本号)。 当我更改代码时,内部版本号会增加并发布包。

在csproj中,我引用了这样的包:

<PackageReference Include="A" Version="4.0.*" />

我想获得最新版本的A,它没有重大变化(这会导致小部分碰撞......)。 不幸的是,如果Nuget下载了A版本,它永远不会尝试检查是否有更新的版本。 我可以手动检查,但是然后Nuget自动将csproj中的版本固定,我必须重新编辑。

我该如何解决这个问题? 修复意味着:我想为我的CI工作流程提供流畅的开发体验。理想情况下,我的开发计算机上有最新的软件包版本,没有大量的手工工作。

1 个答案:

答案 0 :(得分:1)

NuGet有缓存策略,以避免重新下载软件包/一直打网络。

它会在你的obj中转储一个小缓存文件,告诉它你是否已经改变了你的依赖关系。

您需要强制NuGet使用-force选项重新评估远程源中的可用包。 / p:RestoreForce = true,或dotnet CLI中的--force。 在Visual Studio中,当前的重建将执行强制还原。

NuGet还有一个http缓存策略,可以避免在30分钟内点击远程源。要覆盖它,请使用命令行中的-NoCache。目前,没有选项可以在Visual Studio中覆盖它。

TL;博士; NuGet缓存了很多东西来提高性能和远程不必要的远程调用。 通过使用--force / rebuilding调用restore来避免这种情况。