在构建管道上更新App config xml文件中的内部版本号

时间:2019-12-22 06:57:10

标签: azure-devops azure-pipelines

我在Azure DevOps中有一个构建管道,我需要在我的 apconfig exe 文件中更新构建号,该文件将为$(Build.BuildNumber)

我只是这样尝试的:

添加变量名称 = BuildNumber = $(Build.BuildNumber)

在我的apconfig.exe文件中,有一个与<add key="BuildNumber" value="1812201901" />类似的密钥。

为什么我要这样尝试:如果变量名称与键匹配,则认为它将在配置文件中更新。

但是它不起作用。谁能帮忙吗?我刚刚开始使用CI / CD。

2 个答案:

答案 0 :(得分:2)

  

在构建管道上的App config xml文件中更新内部版本号

就像Shayki所说的那样,使用Replace Tokens扩展名应该是解决此问题的直接方法。

但是,由于您需要请求获得此扩展,因此,作为解决方法,您也可以使用Power Shell脚本来解决此问题,因此可以在我的测试Powershell脚本下面进行检查:

$currentDirectory = [IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Path)

$appConfigFile = [IO.Path]::Combine($currentDirectory, 'App.config')

$appConfig = New-Object XML

$appConfig.Load($appConfigFile)

foreach($BuildNumber in $appConfig.configuration.add)
{
    'name: ' + $BuildNumber.name
    'BuildNumber: ' + $BuildNumber.value
    $BuildNumber.value = '123456789'
}
$appConfig.Save($appConfigFile)

因此,app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <add key="BuildNumber" value="123456789" />
</configuration>

注意:将Powershell脚本设置在app.config文件的同一文件夹中。

希望这会有所帮助。

答案 1 :(得分:1)

您可以使用Replace Tokens扩展名,并将其放在apconfig.exe文件中:

<add key="BuildNumber" value="__BuildNumber__" />

配置任务以搜索带有__前缀和后缀的变量:

enter image description here

现在,该值将替换为您配置的BuildNumber变量的值(等于Build.BuildNumber)。