使用VSTS版本定义

时间:2018-06-13 17:12:49

标签: azure-devops azure-pipelines-release-pipeline

我目前在VSTS中使用变量替换但是我遇到了如何从列表中选择特定元素的障碍。

我必须提供我想要替换的变量的名称和用于替换旧值的键。我可以使用.在config中选择嵌套元素。

我有以下app.config。

<services>
  <service behaviorConfiguration="ServiceBehaviour" name="Application.Project01">
    <endpoint address="" behaviorConfiguration="webBehavior" binding="webHttpBinding" bindingConfiguration="web" contract="Application.Interface01">
      <identity>
        <dns value="dns01" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/Project01/" />
      </baseAddresses>
    </host>
  </service>
  <service behaviorConfiguration="ServiceBehaviour" name="Application.Project02">
    <endpoint address="" behaviorConfiguration="webBehavior" binding="webHttpBinding" bindingConfiguration="web" contract="Application.Interface02">
      <identity>
        <dns value="dns01" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/Project02/" />
      </baseAddresses>
    </host>
  </service>
</services>

我希望能够单独替换每个服务中的变量。我感兴趣的具体密钥是services.service.endpoint.identity.dns.valueservices.host.baseaddresses.add.baseaddress

我已尝试以下操作来编辑dns值

  • services.1.service.endpoint.identity.dns
  • services.1.service.endpoint.identity.dns.value

我使用的任务是Azure App Service Deploy版本3. *

1 个答案:

答案 0 :(得分:1)

对于Azure App Service Deploy任务的XML variable substitution功能,它仅对配置文件的applicationSettings,appSettings,connectionStrings和configSections元素生效。

所以你不能用它来达到你的要求。

您可以使用XML Transformation进行尝试。

您也可以尝试使用其他任务,例如Release Management Utility tasksothers