如何更改发布管道中的应用程序设置和配置信息

Cav*_*man 6 c# visual-studio devops azure-devops

我\xe2\x80\x99m 对通过Azure DevOps 实施CI/CD 相当陌生,我有一个可能是我\xe2\x80\x99m 不知道如何解决的典型场景。我发现处理文件转换的大多数文章都涉及 IIS 部署,但我目前使用 .Net Framework 控制台应用程序。

\n

在我的控制台应用程序中,我们有某些设置(通常是文件路径),这些设置根据我们所处的环境(开发、阶段、产品)而有所不同,并且每个环境中的数据库连接字符串也有所不同。

\n

我被展示了如何使用变量,ex: __connectionstring__可以使用 Tokenizer 应用程序在 Azure DevOps 发布管道中设置和替换这些变量。但是,在我的开发环境中使用该变量不起作用\xe2\x80\x99。当我在 Visual Studio 中调试时,它仍然看到上面的变量名称,并且 \xe2\x80\x99t 没有类似标记生成器的东西来在我的开发计算机上本地填充该变量。

\n

有人可以向我指出一篇文章或示例,介绍一种使应用程序设置特定于每个环境 I\xe2\x80\x99m 的好方法,这样我仍然可以在本地进行调试,但也可以更改 ADO 发布管道中的设置?

\n

Lev*_*SFT 8

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

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

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

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

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