I’ve been working quite a bit with Team Build lately, and overriding properties is a method of customization I’ve found quite useful in certain scenarios. Along the way, I found Aaron Hallberg’s excellent Team Build 2008 Property Reference blog post, but it didn’t show me where the properties were referenced. In fact, there isn’t an easy way to determine where any particular Property is being used or set other than reading through the 1,500 lines in the Microsoft.TeamFoundation.Build.targets file. I decided to spend a few hours, read through the file myself, and compile a chart of each Property, what Target it is referenced by, and how it is referenced.
Hopefully the chart is self-explanatory, but here’s some tips:
- Target names are along the horizontal axis
- Base represents the root of the Targets file where global Properties are set
- Property names are along the vertical axis
- Legend
- Set: The Property is Set inside the Target. In the case of
- Used: The Property is used inside the Target
- Condition: The Target or a contained Task references the Property in a condition
- Error If Exists: Team Build will throw an exception if the Property is set, or not set, under the right conditions
- Null Error: Team Build will throw an exception if the Property is null
- Depends On: The target has a DependsOn for the Property. The Property contains a semi-colon delimited list of Target names
I do not claim the chart to be 100% without error, so verify before you use it. Please send any updates or corrections to me.
As a side note, if you are working with Team Build, Aaron Hallberg’s blog is choked full of Team Build goodness.