.Net Core DevOps - 替换 ConnectionStrings

之前发布了 《.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#
posted @ 2019-10-31 15:38  布洛克菲勒  阅读(1008)  评论(0编辑  收藏  举报