NuGet如何决定是否使用本地包缓存?

2024-01-08

今天,我在安装软件包时遇到了 NuGet 的奇怪行为。

简要描述:作为我的构建脚本的结果,有一个 NuGet 包。我不会每次都更改版本,因此每个构建都会产生MyPackage.1.0.0.nupkg。作为构建的最后一步,我将包推送到部署在本地网络内的 NuGet 服务器。

现在,在另一台机器上,我运行nuget install MyPackage -Source http://myserver/nuget,这显然会安装 NuGet 包。

当我推送另一个更新时,问题就出现了MyPackage- 仍然是版本1.0.0。当我尝试在客户端计算机上重新安装它时,我得到了该软件包的先前版本。

我发现这是本地缓存的罪魁祸首 http://nuget.codeplex.com/wikipage?title=Machine%20Level%20Cache%20Part%201:如果安装了该包,它会进入本地缓存,下次安装该包时相同版本的安装后,它是从缓存中获取的。很公平!

但是,另一方面,有一个-NoCache的选项nuget install命令,我希望它忽略本地缓存。

然而,事实并非如此。我第一次运行它-NoCache,它会更新缓存并安装真正的最新版本。但是,下次仍然从缓存中获取包,即使使用-NoCache option.

是预期的吗?是不是版本没改的原因?

以防万一:所有 NuGet 操作均通过NuGet.exe以及来自 PowerShell 会话。

UPDATE:我观察到奇怪的行为,我只能用缓存过期来解释。当包被缓存后,所有后续调用nuget install从缓存中提取包,直到一段时间过去。具体时间我没注意,但肯定是一个多小时了。在这之后,nuget install更新缓存中的包,情况就变得一样了……


Yan,

我推送了 MyPackage 的另一个更新 - 仍然是版本1.0.0.

您不应该推送多个具有特定版本的包:包应该是不可变的。如果您更改了包中的某些内容,请增加内部版本号a.b.C并推送新版本的包。

您遇到的行为是 NuGet 期望能够无限期地缓存给定包版本的副作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NuGet如何决定是否使用本地包缓存? 的相关文章

随机推荐

  • Selenium 不加载重定向页面

    我有一个工具可以加载网站 填写信息并保存结果 直到上周 它都运行良好 经过调试 我发现原因是因为站点URL 变成 了重定向 重定向的顺序如下所示 例如 网站网址是google com google com google com someth
  • Mongoose 使用 $in 查找数组

    Team find id in teamIds function err teamData console log teams name teamData 这段代码给了我们未定义的返回值 但是在 var teamIds 中是这样的 5456
  • 在 HTML 中选择输入和文本输入 - 使宽度相等的最佳方法?

    我有一个像这样的简单表格 仅用于说明目的
  • 如何重构抛出异常的函数?

    假设我正在重构这样的函数 def check ox Option Int Unit ox match case None gt throw new Exception X is missing case Some x if x lt 0 g
  • 在多对多关系中使用 Doctrine QueryBuilder 进行 NOT IN 查询

    在我的 Symfony2 项目中 我有两个实体 联系人 和 设置 具有多对多关系 ORM ManyToMany targetEntity AppBundle Entity Settings cascade persist ORM JoinC
  • 使用流来解密和解压缩以限制内存使用?

    我有一个非常大的 zip 文件 2 5gb 它是加密的 我无法将整个文件解密到内存中并解压缩以进行生产 所以我尝试使用流来限制使用的内存量 我已经连接了以下内容来执行此操作 为了清楚起见 省略了错误处理和流关闭 SecretKeySpec
  • Win 2008 r2 x64 服务器是否已安装 .net 3 sp1 软件包?

    和标题一样吗 我有一个带有上述操作系统的测试服务器 我的应用程序基于 net 3 5 我确实想知道 win 2008 r2 是否附带 net 3 5 的 Service Pack 1 它是否附带 net 3 5 sp1 系列更新 因为我下载
  • 我无法在操作创建者文件中使用 useHistory 函数

    我正在使用react router dom和redux 我在调度后使用history push 但它显 示错误 我希望用户在成功身份验证后导航到 使用谷歌 export const googleLogin gt async dispatch
  • 地址上方首次使用的单元格

    我正在 Excel 中创建预算 因此我有一些类别和子类别 子类别与其各自的父类别相比有 1 个单元格 子类别当然可以有自己的子类别 在 类别树 旁边的列中 我想打印 类别路径 Let s say I have the following t
  • 如何使用node.js生成excel文件?

    您好 我正在从数组中生成 excel 文件 但我没有成功 我正在使用 node js 工作 并且使用 npm 包生成 excel 文件 但我没有在 excel 文件中获取任何数据 excel 已生成 但未在我的文件中获取任何类型的数据 所以
  • 当 RStudio 中的 ioslides 的 type=HTML 时,调整 stargarzer 表的大小

    我刚开始使用 R Markdown 在 RStudio 中创建幻灯片演示文稿 我无法在网上找到任何可以解决我的具体问题的内容 这是close https stackoverflow com questions 15385696 how to
  • v8 中 Node.js 和 chrome 之间的区别

    镀铬版本 49 0 2623 110 m 节点 v5 10 0 这是我的代码 var a 0 function this a 1 this b 2 console log a console log a console log b 铬给出
  • dplyr 和 tidyr:将长格式转换为宽格式并排列列

    我正在创建一个shiny app用户将在其中上传包含多个变量的 csv 文件 使用dplyr 我会select前四个变量 如下所示 并将它们从长格式转换 DATA df lt read table text c Customer Rate
  • 更改绘图悬停框 R 的位置

    我想更改悬停框的位置plotly条形图 我希望它在栏上方弹出 而不是在左侧或右侧弹出 这可能吗 我一直在谷歌上搜索这个并盯着 Plotly R 参考页面几个小时 但没有运气 这是一个示例 library dplyr library plot
  • 在Oracle中使用SQL从3个表中选择数据

    我希望有人可以提供帮助 我是very这一切都是新的 我被困住了 我有 3 个表 我试图从中提取数据 顾客 custid 第一个 最后一个 积分俱乐部编号 调查编号 订单日期 订单总数 员工 empid 名字 姓氏 工资 销售额 销售日期 c
  • 简单的 REST URL 方案

    在我的网络应用程序中 我有一个user模型和一个journal and post模型 每个用户可以有多个日记 每个日记可以有多个帖子 下面是以 RESTful 方式表示这一点的最佳方式吗 profiles
  • EntityFramework Core 1.1.0 缺少 Include()? [复制]

    这个问题在这里已经有答案了 我正在使用 EntityFramework Core 1 1 0 我可以查询表并加载实体 但 Microsoft 的说明表明如果我想加载关系数据 我应该使用 Include 功能 https learn micr
  • php cURL 问题

  • 避免使用“抛出”构造函数进行堆分配

    说我有课Foo它没有定义默认构造函数并且throws在非默认构造函数中 初始化该类型的新对象时 我想捕获任何异常并返回 否则继续使用该对象 我注意到初始化这个对象 如果可能的话 很困难在堆栈上或通过使用共享指针 因为我试图避免管理内存 Fa
  • NuGet如何决定是否使用本地包缓存?

    今天 我在安装软件包时遇到了 NuGet 的奇怪行为 简要描述 作为我的构建脚本的结果 有一个 NuGet 包 我不会每次都更改版本 因此每个构建都会产生MyPackage 1 0 0 nupkg 作为构建的最后一步 我将包推送到部署在本地