在 xml 文件中添加变量

Adding a variable in xml file

在我的 azure devops "Publish to XL Deploy" 任务中,我指的是 deployit-manifest.xml 文件,我需要在其中提及文件路径。我的文件名包含随每次构建而变化的 buildid。如何在 deployit-manifest.xml 文件中动态地将此构建 ID 添加到文件名中:

<ctep.Application name="/MyApp" file="/MyApp/MyApp-1.0.0.0.ear"> 

感谢您的帮助

请查看此扩展 - token replace。当您将此与每次构建时包版本递增的方式结合起来并将其放入变量中时,您将能够更新此文件以包含正确的包名称。

除了 Replace Tokens task mentioned by Krzysztof. For example RegEx Find & Replace Task and Magic Chunks task 之外,您还可以使用其他扩展任务来替换配置文件中的变量。

当您使用 Replace Tokens 任务或 RegEx Find & Replace 任务时。您需要首先在您的管道中定义一个变量来包含您的构建 ID 值(例如 BuildId)。

如果您需要在管道中动态设置 buildid,您可以勾选 here 在脚本中动态设置变量。

然后修改你的deployit-manifest.xml来标记buildid(用Token前缀#{和后缀}#包装)。

<ctep.Application name="/MyApp" file="/MyApp/MyApp-#{BuildId}#.ear">

然后如下配置任务(示例在 Yaml 视图中)。并保持其他设置为默认设置。

替换令牌任务

- task: qetza.replacetokens.replacetokens-task.replacetokens@3
  displayName: 'Replace tokens in **/deployit-manifest.xml'
  inputs:
    targetFiles: '**/deployit-manifest.xml'

正则表达式查找和替换

- task: knom.regexreplace-task.regex-replace.RegexReplace@3
  displayName: 'RegEx Find & Replace'        
  inputs:      
    InputSearchPattern: |
      **\deployit-manifest.xml

    FindRegex: '(#{.*}#)'
    ReplaceRegex: '$(BuildId)'

您可以使用上述任一任务来完成这项工作。