continuous-integration - 如何避免 Nuget 包被缓存

标签 continuous-integration nuget nuget-package nuget-package-restore cakebuild

恢复 Nuget 包时,这些包会缓存在本地计算机中,下次当我想使用最新的 Nuget 包(具有相同版本,但文件已更新)时,将从我的计算机中检索旧版本。

我使用以下命令清除本地计算机缓存中的 Nuget 包:

nuget locals -clear all

除了这样做之外,还可以阻止 Nuget 包在系统中缓存。

最佳答案

是的,使用可用的nocache选项

如果您想 100% 确定,可以将 NUGET_PACKAGES 环境变量设置为临时路径,它每次都会在新位置查找和存储。

当您用 Cake 标记问题时 - 我猜您正在使用它, NuGetAliases安装和恢复也支持NoCache。

要从 Cake 脚本设置 NUGET_PACKAGES 环境变量,您可以使用 EnvironmentVariables属性可用于所有蛋糕工具,包括 NuGetInstallSettingsNuGetRestoreSettings ,设置它可能看起来像这样

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/

相关文章:

Jenkins-node 作为 docker 容器

heroku - CI 环境中的脚本 "heroku login"

.net - NuGet:自动迁移对包的引用

visual-studio-2015 - 此项目引用了该计算机上缺少的 NuGet 包。

nuget - 如何通过nuget安装MVVMLight

c# - 如何解决 NuGet.targets(124,5) : error : Value cannot be > null. (Parameter 'folderName' ) 错误?

clojure - 如何在运行时访问正在运行的 Clojure 应用程序的版本号?

java - Jenkins 后台生成过程 - 不会留在队列中的作业

visual-studio - Visual Studio Build 不会下载所有没有项目引用的 NuGet 包

nuget - 安装nuget时需要打开一个readme.md文件