恢复 Nuget 包时,这些包会缓存在本地计算机中,下次当我想使用最新的 Nuget 包(具有相同版本,但文件已更新)时,将从我的计算机中检索旧版本。
我使用以下命令清除本地计算机缓存中的 Nuget 包:
nuget locals -clear all
除了这样做之外,还可以阻止 Nuget 包在系统中缓存。
最佳答案
是的,使用可用的nocache
选项
- 安装 - https://learn.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference#install
- 恢复 - https://learn.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference#restore
如果您想 100% 确定,可以将 NUGET_PACKAGES
环境变量设置为临时路径,它每次都会在新位置查找和存储。
当您用 Cake 标记问题时 - 我猜您正在使用它, NuGetAliases安装和恢复也支持NoCache。
- NuGetInstallSettings有一个NoCache属性(property)
- NuGetRestoreSettings有一个NoCache属性(property)
要从 Cake 脚本设置 NUGET_PACKAGES
环境变量,您可以使用 EnvironmentVariables属性可用于所有蛋糕工具,包括 NuGetInstallSettings和 NuGetRestoreSettings ,设置它可能看起来像这样
new NuGetRestoreSettings {
NoCache = true,
EnvironmentVariables = new Dictionary<string, string>{
{ "NUGET_PACKAGES", MakeAbsolute(Directory("./some_temp_path")).FullPath }
}
}
关于continuous-integration - 如何避免 Nuget 包被缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42716164/