首页 > 解决方案 > Nuget 缓存与全局包文件夹

问题描述

我试图了解两者之间的区别。 这篇文章说:

缓存避免下载已经安装在机器上的包。

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

这篇文章说的有点多。

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

为什么要查找这么多,为什么要在多个地方保存本地包?我错过了什么?

标签: .netnuget

解决方案


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

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

至于非Http来源;您可以将计算机中的文件夹定义为 nuget 存储库。此位置将包含 nukpg 文件。并且 nuget 可以将此位置用作 nuget 包源。(如本地 nuget 存储库)


推荐阅读