.net - Nuget 缓存与全局包文件夹
问题描述
我试图了解两者之间的区别。 这篇文章说:
缓存避免下载已经安装在机器上的包。
全局包文件夹允许多个项目共享相同的已安装包,从而减少 NuGet 在计算机上的总体占用空间。
这篇文章说的有点多。
当被要求检索包时,NuGet 首先查看 global-packages 文件夹。如果不存在包的确切版本,则 NuGet 会检查所有非 HTTP 包源。如果仍未找到包,NuGet 会在 http-cache 中查找包,除非您使用 dotnet.exe 命令指定 --no-cache 或使用 nuget.exe 命令指定 -NoCache。如果包不在缓存中,或者未使用缓存,NuGet 然后通过 HTTP 检索包。
为什么要查找这么多,为什么要在多个地方保存本地包?我错过了什么?
解决方案
用于存储依赖项安装的全局包文件夹(解压的 nuget 包和 nupkg 文件)。当多个项目使用相同的依赖项时,如果此位置已存在依赖项,他们将不会下载并解压缩依赖项。(如果他们正在使用PackageRefence。)
Htpp-cache 用于在短时间内(30 分钟)存储下载的 nuget 包。唯一一次我认为这会有用;当从全局包文件夹中删除的包和项目尝试恢复相同的包时,它将从 http-cache 而不是远程 nuget 存储库中获取。
至于非Http来源;您可以将计算机中的文件夹定义为 nuget 存储库。此位置将包含 nukpg 文件。并且 nuget 可以将此位置用作 nuget 包源。(如本地 nuget 存储库)
推荐阅读
- nginx - 如何在 k8s 集群上配置 Harbor?
- c++ - GTKMM 不适用于我的 CLion 安装 (Windows 10)。CMakeLists.txt - 找不到 PkgConfig
- c# - 如何加载datareader数据然后为ajax数据表返回json
- android - 为什么我的下载有时会使用 flutter_downloader 失败?
- jquery - 在 ngrepeat 中使用 onclick
- python - Pandas 指定数据类型
- javascript - 如何从 Javascript 中隐藏 JSF 元素
- linux - 在 Ansible 2.4 中实现 openssl 标准命令(例如 pkcs12)
- reactjs - 在 react 或 vanillajs 中以编程方式修改/操作浏览器历史记录
- database - 如何从 .ibd、.frm 文件恢复数据库