You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps中如何缓存uno-check配置的构建环境依赖?

解决Azure DevOps流水线重复搭建环境的缓存方案

1. 使用自托管代理(适配原TeamCity自有服务器场景)

直接在你原有的自有服务器上部署Azure DevOps自托管代理,一次性通过uno-check配置好所有Microsoft工作负载包后,后续流水线复用这个代理的环境即可。自托管代理的环境是持久化的,不会像微软托管代理那样每次重建,完全省去重复执行依赖配置的10分钟耗时。如果需要多套隔离环境,可以部署多个自托管代理并分组管理。

2. 利用Azure DevOps缓存任务缓存工作负载目录

虽然这些不是NuGet包,但uno-check安装的Microsoft工作负载包会存放在固定目录(比如Windows下的C:\Program Files\Microsoft Visual Studio\<版本号>\<Edition>\MSBuild\Microsoft\VisualStudio,Linux下对应路径)。你可以用Cache@2任务缓存这个目录,通过哈希值控制缓存失效:

- task: Cache@2
  inputs:
    key: 'vs_workloads | "$(Agent.OS)" | $(uno-check-version)'
    restoreKeys: |
       vs_workloads | "$(Agent.OS)"
    path: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0'
  displayName: 缓存Visual Studio工作负载

操作要点:

  • 提前获取当前uno-check的版本号(比如通过uno-check --version输出),作为缓存键的一部分,确保依赖更新时自动触发新缓存。
  • 确认工作负载的实际安装路径,避免缓存路径错误导致失效。

3. 构建自定义虚拟机镜像(适用于微软托管代理场景)

如果依赖固定且长期不变,可以在Azure中创建一台VM,通过uno-check完成所有依赖配置后,将其制作成自定义VM镜像。之后在流水线的代理池配置中,指定使用这个自定义镜像作为代理的基础镜像。每次启动代理时直接加载预配置好的环境,无需重复执行依赖安装步骤。


内容的提问来源于stack exchange,提问作者dennis_ler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:32:36