Welcome to MSDN Blogs Sign in | Join | Help

what happens before msbuild decides to build a target?

there are several elements to processing a target tag:  processing its dependencies, processing the condition, and performing TLDA (top level dependency analysis) or up-to-date checks.  it can be confusing to figure out if a target will execute or not, so we on the msbuild team toss around a nifty mnemonic to help us remember (originally pointed out by rajeev, as far as i can remember).  this is the order in which msbuild processes the attributes of a target element:

  • Condition
  • DependsOnTargets
  • Inputs
  • Outputs

notice they're in alphabetical order.  first, msbuild will evaluate the Condition.  if the Condition is false, msbuild skips the target (and never even bothers looking at the DependsOnTargets attribute).  if the Condition is true, msbuild will then execute each of the targets listed in DependsOnTargets.  once the dependencies have been built, it will then examine the Inputs and Outputs to determine if the target even needs to be built, or if it can be partially built (do you know what this means?).  then msbuild can actually begin running your tasks....

[ Author: Jeffery Callahan ]

Published Friday, October 14, 2005 8:00 PM by msbuild
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker