If you’ve ever been wondering how to get the value of the $(Rev:r) (or $(Rev:rr)) value in you team build, you can’t. If you have a pretty boilerplate versioning where you do Major.Minor.Release.Revision then using the $(Rev:r) is pretty handy. A company I work for now uses Major.Minor.Patch.Revision. Below is how I was able to extract the revision number during TFS build workflow time.
1. Our BuildNumberFormat is set close to the default: $(BuildDefinitionName)$(Rev:.r). We can use this fact to extract the revision number.
2. Create a string variable that is scoped to Run On Agent called RevisionNumber. Don’t use Version or something like that which has a class name in the TFS namespaces (i.e. Version is type being used as int).
3. Near the top of the “Run On Agent” area of you build template, add a Assign task item from the toolbox. I added mine to the sequence called Initialize Variables because it logically made sense here.
- Set To to be RevisionNumber
- Set Value to be the following expression
Int32.Parse(BuildDetail.BuildNumber.Remove(0, BuildDetail.BuildNumber.IndexOf(".") + 1))
With this in place you can use the revision number to create any numbering based of this value.