## .Net Core DevOps - 替换 ConnectionStrings > 之前发布了 [《.Net Core DevOps -免费用Azure四步实现自动化发布(CI/CD)》](https://www.cnblogs.com/zhaozhengyan/p/azure-devops-aliyun.html/)之后,有很多朋友私信我说如何替换 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# ``` Like (0) devops