Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom TFS Enviroment Variable doesn't read $(Date)

I want to use a custom tfs variable like this:

MergedVersion: $(BuildVersion.Major).$(BuildVersion.Minor).$(Date:yy)$(DayOfYear)$(Rev:.r)

My problem is that $(Date), $(Rev:r) and $(DateOfYear) don't work outside the BuildNumberFormat-Settings.

My result is:

invalid version string: '1.0.$(Date:yy)$(DayOfYear)$(Rev:.r)'.

While with the buildnumberformat like shown here - works correctly:

enter image description here

Result $(Build.BuildNumber) is MyBuildName_1.0.18004.15

like image 665
Peter Avatar asked Sep 11 '25 18:09

Peter


1 Answers

Some tokens are only available in the Build number format section, such as $(Date), $(Rev:r) and $(DateOfYear) you mentioned here. See Build definition options

As a workaround, to use $(Rev:r)you can set the build number format as $(Rev:r), then use the $(Build.BuildNumber) variable in your tasks.

To use $(Date:yy)$(DayOfYear), you can set the variables via PowerShell task as ChamindaC mentioned above.

  1. Add a PowserShell task in you build definition
  2. Copy and paste below script and save it as *.ps1 file
  3. Check in the PS file, then run the PS file in PowerShell task

    $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"

Then you can use the variables $(Date) and $(DayOfYear) in other build tasks.

enter image description here

like image 51
Andy Li-MSFT Avatar answered Sep 13 '25 07:09

Andy Li-MSFT