Azure Dev槽出现appsettings.Production.json的原因及移除方法
问题解答:Azure Dev槽中遗留已删除的appsettings.production.json文件
核心原因
GitHub Action部署Azure App Service时,默认采用增量同步策略:仅上传仓库中当前存在的文件,不会主动删除目标槽中已有的、但仓库里已移除的旧文件。你数月前删除的appsettings.production.json正是因为这个原因,一直留存于Dev槽中,直到你手动删除。
关键细节说明
- 部署动作的默认行为:官方的
azure/webapps-deploy动作默认不清理目标目录。只有显式配置clean: true参数,才会在部署前清空目标槽中与仓库不一致的旧文件。 - 槽交换的排除逻辑:该文件未出现在生产槽,符合槽交换的规则——槽交换仅同步应用设置、连接字符串等配置项,不会复制应用文件本身,因此生产槽不会继承Dev槽的遗留文件。
- 删除后不再出现的原因:手动删除该文件后,后续部署未重新引入此文件,且目标目录已无该文件,自然不会再生成。
彻底解决方法
在GitHub Action的部署步骤中添加clean: true配置,确保每次部署都自动清理目标槽的旧文件,示例配置如下:
- name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: '你的应用名称' slot-name: 'Dev' publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} clean: true # 启用旧文件清理
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

