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

Azure Pipeline CI编译未同步HTML更新、构建产物为旧版本问题

Azure Pipeline 构建始终拉取旧版本代码排查方案

按优先级从高到低依次排查,每一步验证通过后再往下走:

  • 先验证代码提交是否真的到了目标分支
    直接在代码托管平台的网页端,打开Pipeline配置拉取的对应分支,找到你修改的HTML文件,确认网页端展示的内容是你修改后的最新版本,核对最新commit hash。如果网页端都看不到修改,说明你本地提交未推送、PR未完成合并、或者被分支策略拦截,和Pipeline无关。
  • 核对Checkout步骤的拉取配置
    打开任意一次异常构建的日志,定位到Checkout任务节点:
    1. 确认拉取的仓库地址、分支名和你提交修改的仓库、分支完全一致,排除连错同名仓库、fork仓库的问题
    2. 对比日志里打印的拉取到的最新commit hash,和代码平台上目标分支的最新hash是否一致
    3. 给Checkout任务开启全量清理配置:设置clean: true,清理选项选sources,如果是自托管代理直接选all directories,避免代理工作区残留旧文件
  • 排除构建缓存和文件拷贝配置问题
    1. 临时禁用Pipeline里配置的所有缓存任务(包括NuGet缓存、npm缓存、MSBuild输出缓存、Pipeline通用缓存任务)
    2. 在Checkout步骤之后、构建步骤之前,加一个命令行任务执行git clean -fdx,强制清空工作区所有未跟踪文件、中间生成文件
    3. 打开项目的.csproj文件,找到你修改的HTML文件的配置项,确认CopyToOutputDirectory节点值不是Never,静态文件要设置为PreserveNewest或者Always才会被拷贝到构建输出目录
  • 核对Artifact发布环节的路径配置
    打开构建日志里的Publish Artifact任务节点,查看任务实际扫描、拷贝的源文件路径:
    1. 确认待发布路径指向的是本次构建的工作区输出目录,不是代理机器上的固定静态目录、其他管线的输出目录
    2. 在日志里找到你修改的HTML文件的拷贝记录,核对文件的修改时间、大小,和代码库中的最新文件一致
    3. 构建完成后直接下载生成的artifact包,解压后全局搜索你修改的字段名,确认包内的HTML文件是最新版本,排除存在多个同名HTML文件(比如Razor类库内嵌的静态文件优先级高于主项目文件)导致的加载旧文件问题
  • 自托管代理专项排查
    如果你用的不是微软托管代理,是自己部署的自托管代理:
    1. 登录代理机器,手动删除代理安装目录下_work文件夹中对应管线的所有工作目录内容,排除旧文件残留
    2. 临时切换到微软托管代理跑一次构建,如果切换后构建正常,说明是自托管代理的工作区权限、磁盘残留、配置异常导致的问题

注意:如果其他同配置管线运行正常,不需要重建管线,90%以上的此类问题都是拉取分支不匹配、自托管代理残留、发布路径配错这三个原因导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:03:31