.Net Core DevOps - 替换 ConnectionStrings

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

1.项目添加 appsettings.Production.json#

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

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

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

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

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

Copy
检查Job执行情况

Copy
进入docker查看appsettings,替换成功
Copy
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 @   布洛克菲勒  阅读(1037)  评论(0)    收藏  举报
编辑推荐:
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
· 如何统计不同电话号码的个数?—位图法
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
阅读排行:
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析
· 三维装箱问题(3D Bin Packing Problem, 3D-BPP)
· Windows上,10分钟构建一个本地知识库
· 使用 AOT 编译保护 .NET 核心逻辑,同时支持第三方扩展
· Java虚拟机代码是如何一步一步变复杂且难以理解的?
点击右上角即可分享
微信分享提示
CONTENTS