Ubuntu环境下azure/webapps-deploy@v2报Windows长路径错误求助
问题原因
你看到的Windows长路径错误并非来自运行Workflow的Ubuntu环境,而是你的Azure App Service是Windows操作系统。azure/webapps-deploy@v2执行的ZIP Deploy会将本地打包的文件上传到Azure App Service并在云端解压,解压过程是在App Service的Windows环境中进行的,因此触发了Windows特有的260字符路径长度限制。
排查过长路径的方法
1. 确认App Service环境类型
登录Azure门户,查看你的App Service配置,确认它是否属于Windows计划(而非Linux计划)——这是触发该错误的前提。
2. 在Workflow中添加路径扫描步骤
在打包完成后、部署前,加入一段脚本扫描本地生成的文件,找出路径长度接近或超过260字符的文件。具体命令如下:
扫描并输出路径长度≥260的文件(含长度数值)
find "$(pwd)" -type f | awk '{if(length($0)>=260) print length($0) " " $0}'
仅输出过长路径
find . -type f -exec bash -c '[[ ${#1} -ge 260 ]] && echo "$1"' _ {} \;
将这段命令加入你的GitHub Workflow中,示例如下:
- name: Check for long paths run: | find "$(pwd)" -type f | awk '{if(length($0)>=260) print length($0) " " $0}' working-directory: ./your-build-output-directory # 替换为你的打包输出目录
3. 对应Azure端的路径计算
注意:Azure App Service解压时的路径会包含云端的站点根目录(比如D:\home\site\wwwroot\),所以本地路径长度加上云端根目录的长度可能会超过限制。如果本地路径接近200字符,就需要警惕是否会触发云端的260限制。
临时解决思路
- 缩短目录层级:简化打包输出的目录结构,减少嵌套层数
- 重命名长文件名:将过长的文件名或目录名改为更短的名称
- 开启Windows长路径支持:在App Service的「配置」→「应用设置」中添加
WEBSITE_ENABLE_LONG_PATH = 1,部分场景下可以解除260字符限制
内容的提问来源于stack exchange,提问作者Sirius
相关产品推荐
相关产品推荐

