Nuget缓存与全局软件包文件夹

时间:2018-11-28 15:43:21

标签: .net nuget

我试图了解两者之间的区别。 This article说:

  

缓存可以避免下载机器上已经安装的软件包。

     

全局包文件夹允许多个项目共享相同的已安装包,从而减少NuGet在计算机上的总体占用空间。

This article再说一遍。

  

当被要求检索软件包时,NuGet首先在global-packages文件夹中查找。如果没有确切的软件包版本,则Nu​​Get会检查所有非HTTP软件包的来源。如果仍然找不到该软件包,则除非使用dotnet.exe命令指定--no-cache或使用nuget.exe命令指定-NoCache,否则NuGet会在http-cache中查找该软件包。如果程序包不在缓存中,或者未使用缓存,则NuGet然后通过HTTP检索程序包。

为什么要进行如此多的查找,为什么要在多个地方将软件包保存在本地?我想念什么?

1 个答案:

答案 0 :(得分:1)

全局软件包文件夹,用于存储依赖项安装(解压的nuget软件包和nupkg文件)。当多个项目使用相同的依赖项时,如果此位置已存在依赖项,则它们将不会下载并解压缩依赖项。(如果他们正在使用PackageRefence。)

Htpp缓存用于在短时间内(30分钟)存储下载的nuget程序包。我认为这是唯一有用的时间;当一个软件包从全局软件包文件夹中删除并且一个项目试图恢复相同的软件包时,它将从http-cache而不是远程nuget存储库中获取。

对于非HTTP来源;您可以在计算机中将folder定义为nuget存储库。此位置将包含nukpg文件。 nuget可以将此位置用作nuget包的源。(例如本地nuget存储库)

相关问题