Azure Static Web App部署时如何在Azure DevOps替换Blazor的appsettings.json值
解决方案
步骤1:定义流水线变量
你可以选择两种方式定义要替换的配置值:
- 方式1:直接在YAML头部添加
variables块
variables: ApiUrl: "你的生产环境API地址,例如https://your-function-app.azurewebsites.net/api/"
- 方式2:在Azure DevOps流水线编辑界面的「变量」面板中添加,存储敏感值时可以勾选「保密变量」选项。
注意:变量名必须和appsettings.json中的配置键完全匹配,嵌套键使用.连接层级即可
步骤2:添加JSON配置替换任务
在AzureStaticWebApp@0部署任务之前,插入FileTransform@2官方任务,用来动态替换appsettings.json的内容,修改后的完整流水线YAML如下:
trigger: - main pool: vmImage: ubuntu-latest variables: # 此处配置也可以移到流水线变量面板中设置 ApiUrl: "https://your-prod-api-endpoint/api/" steps: - checkout: self submodules: true # 新增的配置替换任务 - task: FileTransform@2 inputs: folderPath: '$(Build.SourcesDirectory)/Atlas.Blazor' jsonTargetFiles: 'appsettings.json' - task: AzureStaticWebApp@0 inputs: app_location: '/Atlas.Blazor' api_location: '/Atlas.InternalHost' output_location: '/wwwroot' azure_static_web_apps_api_token: $(deployment_token)
步骤3:验证替换效果
任务执行时会自动匹配变量名和JSON键完成替换,之后再执行静态Web App的打包部署,你可以在部署完成后访问站点的/appsettings.json路径,确认配置是否已更新为目标值。
内容的提问来源于stack exchange,提问作者Murdock
相关产品推荐
相关产品推荐

