我想使用如下所示的自定义tfs变量:
MergedVersion:$(BuildVersion.Major).$(BuildVersion.Minor).$(Date:yy)$(DayOfYear)$(Rev:.r)
我的问题是,$(Date)
、$(Rev:r)
和$(DateOfYear)
不能在BuildNumberFormat之外工作。
我的结果是:
无效版本字符串:‘1.0.$(日期:yy)$(DayOfYear)$(Rev:.R)’。
虽然使用了如下所示的buildnumberformat格式--但工作正常:
结果$(Build.BuildNumber)
为MyBuildName_1.0.18004.15
发布于 2018-01-04 20:32:33
一些令牌仅在Build number format
部分中可用,例如这里提到的$(Date)
、$(Rev:r)
和$(DateOfYear)
。请参阅生成定义选项
作为解决办法,要使用$(Rev:r)
,可以将版本号格式设置为$(Rev:r)
,然后在任务中使用$(Build.BuildNumber)
变量。
要使用$(Date:yy)$(DayOfYear)
,可以像上面提到的PowerShell任务那样通过ChamindaC来设置变量。
*.ps1
文件$time=$(Get-Date -Format 'yy') # you can set the date format based on your requirement $doy = (Get-Date).DayofYear Write-Host "##vso[task.setvariable variable=Date]$time" Write-Host "##vso[task.setvariable variable=DayOfYear]$doy"
然后,可以在其他构建任务中使用变量$(Date)
和$(DayOfYear)
。
发布于 2018-01-04 18:17:07
在构建定义中的PowerShell任务中使用以下脚本
$date=$(Get-Date -Format 'yy');
Write-Host "##vso[task.setvariable variable=Today]$date"
然后,您可以在后续的构建任务中使用$(今天)。但是,像$(今天:yy)这样的格式的用法是不可能的,因为它只支持版本号格式。
发布于 2018-12-21 16:59:44
构建在@ChamindaC和@Andy Li-MSFT的答案之上,并使用Peter Groenewegen的Xpirit 运行内联Powershell和Azure Powershell构建扩展,我能够从构建号中检索$(rev:r):
在下面的MSBuild任务中,我将其引用为$(修订)。
https://stackoverflow.com/questions/48094110
复制