【问题标题】:How to configure CI for Console Application suitable to multiple environments [ Dev, QA, Prod ]?如何为适用于多种环境的控制台应用程序配置 CI [Dev、QA、Prod]?
【发布时间】:2020-03-30 04:15:57
【问题描述】:

我有一个遗留控制台应用程序 [.Net 4.0 Framework],我能够构建 CI 并且它成功了,但是如何处理各种环境的 CI。

因为对于控制台应用程序,app.config 将被转为 .exe 配置,并且该配置将在运行时使用。

我尝试过创建多个 app.config 的 [ app.Dev.Config, app.QA.config, app.Prod.Config ],但是在构建过程中如何替换它?

是否有任何脚本可以将 app.Config 替换为特定于环境的配置?

使用 Azure Pipelines 配置 CI/CD。

【问题讨论】:

    标签: .net azure-devops console-application azure-pipelines


    【解决方案1】:

    Azure devops 服务提供 File Transform task 来转换这些配置文件。

    您可以在构建管道或发布管道中,在构建项目之前甚至在构建项目之后使用它来转换您的app.config 文件或AppName.exe.config

    -transform <path to the transform file> -xml <path to the source file> -result <path to the result file>
    

    e.g:如果你想将你的应用部署到 Dev 阶段,你可以使用 -transform app.Dev.config -xml app.config(*.exe.config) 之类的东西。

    您可以在以下两个文档中找到有关如何使用此任务的更多详细信息:Guide1Guide2

    另外:

    1.注意文件路径! (管道任务中相对路径更好。)

    2.对于CD,您可能需要$(Release.EnvironmentName) 之类的东西,它代表当前的舞台名称。所以app.$(Release.EnvironmentName).config文件总是包含当前阶段的规则。

    3.另一种选择,如果您在发布管道中定义阶段范围变量。您还可以使用Replace Token 扩展名,将默认值替换为当前阶段的值。见this,那么你就不需要保留那些app.xx.config文件了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-25
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多