首页 > 解决方案 > 如何在发布管道中更改 Appsettings 和 Config 信息

问题描述

我对通过 Azure DevOps 实施 CI/CD 还很陌生,而且我可能遇到了一个我不知道如何解决的典型场景。我发现处理文件转换的大多数文章都与 IIS Deploy 相关,但我目前正在使用 .Net Framework 控制台应用程序。

在我的控制台应用程序中,我们有某些设置,通常是文件路径,根据我们所处的环境(Dev、Stage、Prod)以及每个环境中不同的数据库连接字符串而有所不同。

向我展示了如何使用ex: __connectionstring__可以使用 Tokenizer 应用在​​ Azure DevOps 发布管道中设置和替换的变量。但是,在我的开发环境中使用该变量是行不通的。当我在 Visual Studio 中调试时,它仍然会看到上面的变量名称,并且没有类似标记器的东西来在我的开发机器上本地填充该变量。

有人可以向我指出一篇文章或示例,介绍一种针对我所处的每个环境进行特定应用程序设置的好方法,这将允许我仍然在本地进行调试,但也可以更改 ADO 发布管道中的设置?

标签: c#visual-studioazure-devopsdevops

解决方案


你可以使用任务文件转换来替换 Azure DevOps 发布管道中的某些设置。

在构建或发布管道中定义的变量将与任何配置文件和 parameters.xml 的 appSettings、applicationSettings 和 connectionStrings 部分中的“key”或“name”条目匹配。变量替换在配置转换后运行。

例如,您有以下 appsetting.json 文件。并且您想将默认日志级别更改为错误。

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

1,首先您需要在发布管道编辑页面Logging.LogLevel.DefaultVariables部分中定义一个发布变量,Error并为其分配值。见下文

在此处输入图像描述

2,在您的发布管道中添加文件转换任务。 在此处输入图像描述

有关 XML 变量替换的更多信息,请在此处查看

还有第三方替换工具(即Magic Chunks / RegEx Find & Replace)可以非常方便地用于替换 azure 管道中设置文件中的值。请查看此线程中的示例。


推荐阅读