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

TeamCity构建Unity3D项目跨分支保留Library文件夹方案咨询

解决TeamCity构建Unity3D时跨分支共享Library缓存的问题

方案1:将Library移至分支外的共享目录

TeamCity默认会为每个分支创建独立的工作目录,导致Library无法跨分支复用。可以通过修改Unity的Library路径来规避这个问题:

  • 调整构建配置的工作目录,不要使用TeamCity自动生成的分支专属路径,改用统一的项目根目录,仅通过脚本切换分支
  • 在构建前添加预处理脚本(PowerShell/Bash):
    1. 检查共享缓存目录(如/opt/TeamCityShared/UnityLibraries/YourProject)是否存在
    2. 若不存在,从master分支的工作目录复制Library到共享目录;若存在则直接复用
  • 修改Unity构建的命令行参数,添加-libraryPath "共享目录路径",强制Unity使用指定的Library缓存

方案2:用TeamCity工件缓存复用Library

利用TeamCity的工件系统保存master分支的Library,供其他分支调用:

  • 在master分支的构建配置中,添加工件发布步骤,将Library/**发布为缓存工件,命名规则可设为UnityLibrary-%PROJECT_NAME%
  • 在其他分支的构建配置中,添加工件下载步骤,优先拉取master分支最新的Library缓存工件到构建目录
  • 设置缓存过期策略,比如保留最近3个版本的缓存,避免磁盘空间占用过高;同时添加 fallback 逻辑:若缓存不存在则自动初始化Library

方案3:彻底禁用VCS自动清理,改用自定义分支切换脚本

如果TeamCity自带的clean禁用选项无效,可绕过自带的VCS同步逻辑:

  • 进入VCS根目录设置,确保未勾选"Clean checkout",同时在构建配置的VCS设置中,将"Clean files before build"设为Never
  • 替换TeamCity自带的VCS同步步骤,改用自定义脚本执行分支切换:
    git fetch origin
    git checkout %teamcity.build.branch%
    git pull origin %teamcity.build.branch%
    
    注意:不要加入git clean或git reset --hard这类会删除本地文件的命令
  • 分支切换后直接执行Unity构建,保留原有Library文件;若出现构建异常,可手动触发一次clean重建Library作为应急方案

注意事项

  • Library与项目强绑定,不同项目的缓存目录必须分开,避免冲突
  • 跨分支共享时,若分支间Unity版本或核心依赖差异过大,可能导致Library失效,需添加构建失败后的自动清理重建逻辑
  • 共享缓存目录建议使用SSD存储,避免IO瓶颈影响构建速度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:01:40