如何在ADO管道中为两个同名appsettings.json替换同Key不同值?
Azure DevOps流水线:同名JSON文件的差异化Token替换方案
拆分Replace tokens任务,单独处理每个文件
不要用单个任务批量处理所有appsettings.json,为每个目标文件单独创建一个Replace tokens任务。精准指定文件路径
每个任务的Target files字段填写对应文件的完整相对路径,比如:- 第一个任务填
src/OrderService/appsettings.json - 第二个任务填
src/PaymentService/appsettings.json
确保每个任务只定位到需要处理的那个文件。
- 第一个任务填
两种实现差异化赋值的方式
使用不同变量名区分Token
修改两个JSON文件中的占位符,用不同的变量名:- 第一个文件里写:
"apiurl": "#{ApiUrl_Order}#" - 第二个文件里写:
"apiurl": "#{ApiUrl_Payment}#"
然后在流水线变量或变量组中分别定义:ApiUrl_Order=https://dev1.com和ApiUrl_Payment=https://dev2.com
任务保持默认的Token前后缀(#{和}#)即可完成替换。
- 第一个文件里写:
通过任务级变量覆盖实现
两个JSON文件都保留相同的占位符:"apiurl": "#{ApiUrl}#"
然后在每个Replace tokens任务的Variables区域,添加任务专属的变量:- 第一个任务添加:
ApiUrl=https://dev1.com - 第二个任务添加:
ApiUrl=https://dev2.com
任务会优先使用自身定义的变量值,不会和其他任务的变量冲突。
- 第一个任务添加:
确认任务执行逻辑
两个任务可以并行执行,也可按需求调整顺序,只要路径和变量配置正确,就能完成差异化替换。
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

