c# - 如何在发布管道中更改 Appsettings 和 Config 信息
问题描述
我对通过 Azure DevOps 实施 CI/CD 还很陌生,而且我可能遇到了一个我不知道如何解决的典型场景。我发现处理文件转换的大多数文章都与 IIS Deploy 相关,但我目前正在使用 .Net Framework 控制台应用程序。
在我的控制台应用程序中,我们有某些设置,通常是文件路径,根据我们所处的环境(Dev、Stage、Prod)以及每个环境中不同的数据库连接字符串而有所不同。
向我展示了如何使用ex: __connectionstring__
可以使用 Tokenizer 应用在 Azure DevOps 发布管道中设置和替换的变量。但是,在我的开发环境中使用该变量是行不通的。当我在 Visual Studio 中调试时,它仍然会看到上面的变量名称,并且没有类似标记器的东西来在我的开发机器上本地填充该变量。
有人可以向我指出一篇文章或示例,介绍一种针对我所处的每个环境进行特定应用程序设置的好方法,这将允许我仍然在本地进行调试,但也可以更改 ADO 发布管道中的设置?
解决方案
你可以使用任务文件转换来替换 Azure DevOps 发布管道中的某些设置。
在构建或发布管道中定义的变量将与任何配置文件和 parameters.xml 的 appSettings、applicationSettings 和 connectionStrings 部分中的“key”或“name”条目匹配。变量替换在配置转换后运行。
例如,您有以下 appsetting.json 文件。并且您想将默认日志级别更改为错误。
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
1,首先您需要在发布管道编辑页面Logging.LogLevel.Default
的Variables
部分中定义一个发布变量,Error
并为其分配值。见下文
有关 XML 变量替换的更多信息,请在此处查看。
还有第三方替换工具(即Magic Chunks / RegEx Find & Replace)可以非常方便地用于替换 azure 管道中设置文件中的值。请查看此线程中的示例。
推荐阅读
- python-3.x - 索引错误:标量变量的索引无效
- linux - How do I run multiple behave+python tests simultaneously without errors?
- typo3 - 可以选中通量字段复选框吗?
- python - 找不到“胶水”的索引页
- html - 子菜单项无法在导航中呈现
- php - 如何使用 PHP 将从文本文件返回的数据解析为 HTML 表
- c# - 注销后未清除许可证信息缓存
- java - 如何检查所有其他元素是否是偶数
- google-apps-script - 查找和替换内容分组的脚本 (Google-apps)
- unit-testing - 使具有多个依赖项的 Golang 业务方法可测试