我在Azure DevOps中有一个构建管道,我需要在我的 apconfig exe 文件中更新构建号,该文件将为$(Build.BuildNumber)
。
我只是这样尝试的:
添加变量名称 = BuildNumber
值 = $(Build.BuildNumber)
。
在我的apconfig.exe文件中,有一个与<add key="BuildNumber" value="1812201901" />
类似的密钥。
为什么我要这样尝试:如果变量名称与键匹配,则认为它将在配置文件中更新。
但是它不起作用。谁能帮忙吗?我刚刚开始使用CI / CD。
答案 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__" />
配置任务以搜索带有__
前缀和后缀的变量:
现在,该值将替换为您配置的BuildNumber变量的值(等于Build.BuildNumber
)。