之前发布了 《.Net Core DevOps -免费用Azure四步实现自动化发布(CI/CD)》之后,有很多朋友私信我说如何替换 appsettings 里面的 ConnectionStrings的问题。我的解决方案是通过Shell在编译前替换需要替换的字符串。以下是具体步骤:

1.项目添加 appsettings.Production.json

添加占位符例如{Writable},用于Shell脚本替换用

2. 打开解决方案的 azure-pipelines.yml 添加一个新的Task

注:```ls```  列出目录(主要是看azure 的 devops 的目录结构,可以不写)
#sed 将文件内所有的 {Writable} 替换成Azure的 $(Writable)
sed -i 's/{Writable}/$(Writable)/g' WebNotebook/appsettings.Production.json

3.将yml的$(Writable) 配置到Azure的 Variables 里面

4.提交代码,查看是否替换成功

检查Job执行情况

进入docker查看appsettings,替换成功
root@iZs9kgd0x5xmhaZ:~# docker exec -it 715afabf4ac7  bash
root@715afabf4ac7:/app# ls
WebNotebook.Views.dll WebNotebook.dll WebNotebook.runtimeconfig.json appsettings.json
WebNotebook.Views.pdb WebNotebook.pdb appsettings.Development.json web.config
WebNotebook.deps.json WebNotebook.runtimeconfig.dev.json appsettings.Production.json wwwroot
root@715afabf4ac7:/app# cat appsettings.Production.json
{
"ConnectionStrings": {
"Writable": "Server=127.0.0.1;Database=Demo;Integrated Security=true;",
"ReadOnly": "Server=127.0.0.1;Database=Demo;Integrated Security=true;"
},
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
root@715afabf4ac7:/app#

最新文章

  1. 八、RFCOMM
  2. 【Selenium2+Python】常用操作
  3. SQL 创建一个只读账户 .
  4. SSIS with vertica
  5. HDU1542 Atlantis(矩形面积并)
  6. Android 自定义Button按钮显示样式(正常、按下、获取焦点)
  7. 小学生之解析XML应用
  8. 初级Django学习
  9. layui layer弹框中表格的显示
  10. freemarker使用
  11. SqlServer基础语法(三)
  12. QPS 机器计算公式
  13. PHP安全之Web攻击(转)
  14. android------adb命令 pull或push手机和电脑文件交互
  15. C语言 · 关联矩阵
  16. CentOS5.5环境下布署LVS+keepalived
  17. 基础语言知识C++
  18. Frequently Used Algo
  19. 解题:POI 2018 Prawnicy
  20. qrcode 生成二维码

热门文章

  1. 【linux】【Go】Centos7安装go1.13环境
  2. linux mint 17编译android 2.3.1错误记录
  3. pip换源
  4. Linux 删除命令rm
  5. win10下,打开oracle时出现 oracle initialization or shutdown in process 错误 的解决办法
  6. MySQL 深入理解索引B+树存储 (转载))
  7. jquery复习日记(1)
  8. ActiveMQ学习总结------入门篇01
  9. github基本使用---从零开始
  10. 时间复杂度————被list.insert坑了