Joh*_*mbo 4 azure-devops azure-pipelines-build-task
我正在尝试在VSTS中构建应用程序时使用内部版本号更新名为"AppVersion"的web.config应用程序设置.
以下是我的构建步骤:
"替换标记"步骤会转换为构建设置的任何变量,并替换您在配置文件中设置的标记.这部分有效,但它不会做的是得到一个像构建号这样的环境变量并进行替换.它只会替换指定的任何文本.这是我的构建变量:
所以在构建步骤完成后,我的应用程序设置是......
<add key="AppVersion" value="$(BuildNumber)" />
什么时候应该像......
<add key="AppVersion" value="20160520.1" />
谁能指出我正确的方向?非常感谢.
小智 8
我使用"替换**/*config中的令牌"任务做了类似的事情.
要使用当前内部版本号更新密钥"AppVersion"的值,您的行应如下所示:
<add key="AppVersion" value="#{Build.BuildNumber}#" />
Run Code Online (Sandbox Code Playgroud)
在 VSTS 中,$(Build.BuildNumber)按照本文档中的指定使用。
请注意,您不能使用$(Build.BuildNumber)来设置变量的值,因为它是按字面意思获取的;它应该是任务的一个论据。如果您的任务不接受它,您可以用一些 Powershell 脚本和BUILD_BUILDNUMBER环境变量替换。
param (
[Parameter(Mandatory = $true)]
[String]$fileWithTokens,
[Parameter(Mandatory = $false)]
[String]$tokenRegex = "__(\w+)__"
)
$vars = Get-ChildItem -path env:*
$contents = Get-Content -Path $fileWithTokens
$newContents = "";
$contents | % {
$line = $_
if ($_ -match $tokenRegex) {
$setting = Get-ChildItem -path env:* | ? { $_.Name -eq $Matches[1] }
if ($setting) {
Write-Host ("Replacing key {0} with value from environment" -f $setting.Name)
$line = $_ -replace $tokenRegex, $setting.Value
}
}
$newContents += $line + [Environment]::NewLine
}
Set-Content $fileWithTokens -Value $newContents
Run Code Online (Sandbox Code Playgroud)
````
来源https://github.com/colindembovsky/cols-agent-tasks/tree/master/Tasks/ReplaceTokens
| 归档时间: |
|
| 查看次数: |
4197 次 |
| 最近记录: |