【问题标题】:Best practices of config value update for build definitions构建定义的配置值更新的最佳实践
【发布时间】:2016-06-30 07:18:40
【问题描述】:

我想问一下是否有人在 Visual Studio Team Services 构建期间更改过 Web API .config 文件值(替换为其他值)?有什么最佳实践或方法可以实现吗?

【问题讨论】:

  • 您的意思是Web.Debug.configWeb.Release.config?如果是app.config,你看过stackoverflow.com/questions/8082662/…吗?
  • 我的意思是 Web.config appSettings 键值
  • 然后使用Web.{Build definition}.config

标签: c# .net azure-devops azure-pipelines


【解决方案1】:

您可以使用SlowCheetah 根据您在排队构建时指定的构建配置来转换配置文件中的值。

您还可以使用Replace Tokens 任务将文件中的字符串替换为您在构建定义中创建的变量。

【讨论】:

    【解决方案2】:

    你应该看看Web.configtransformations。您可以拥有一个主要的Web.config 文件,然后根据文件Web.{Build definition name}.config 中的构建定义名称定义所需的转换。

    这种转换的例子:

    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
        <connectionStrings>
            <add name="MyDB" connectionString="ReleaseSQLServer"
                xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
        </connectionStrings>
    </configuration>
    

    MyDB connectionString 属性从任何先前的值转换为ReleaseSQLServer

    【讨论】:

    • 如何将 VSO 定义的变量(如果可能)传递给这些配置?
    • “VSO 定义的变量”是什么意思?
    • 我们可以在realese下定义多个变量或者构建定义
    • 你不能在这样的定义中包含变量。这些必须是硬编码值。如果你想更灵活,你需要使用一些扩展。
    【解决方案3】:

    除了使用配置转换之外,还有许多扩展可以让您在这方面更轻松:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多