Upload
learningtech
View
138
Download
1
Tags:
Embed Size (px)
DESCRIPTION
basic msbuild by Anney
Citation preview
Msbuild basicAnney
Basic MSBuild Elements
<Project>
Root element
Include one or more target , propertyGroup, itemGroup elements.
<Target>
Include one or more Tasks
<PropertyGroup>
<ItemGroup>
Tasks
Copy
Delete
Message
Extension naming rule
.proj
main 入口 .targets
用於 import
.props
僅放 PropertyGroup
.tasks
自製的 UsingTask
本日練習主題
Copy Files Copy D:\test\MSBuild\MyApp Folder to D:\test\MSBuild\MyApp1
Task: Copy
Delete Files Delete D:\test\MSBuild\MyApp1\*.txt
Task: Delete
Show Files Show D:\test\MSBuild\MyApp1 Files
Task: Message
Task References http://msdn.microsoft.com/en-us/library/vstudio/7z253716.aspx
Copy Task
Show output parameter
Copy Task
http://msdn.microsoft.com/en-us/library/vstudio/ms164287.aspx
Delete Task
Target Build Order
Target Build Order
InitialTargets
This Project attribute specifies the targets that will run first, even if targets are specified on the command line or in the DefaultTargets attribute.
DefaultTargets
This Project atttribute specifies which targets are run if a target is not specified explicitly on the command line.
DependsOnTargets
This Target attribute specifies targets that must run before this target can run.
BeforeTargets and AfterTargets
These Target attributes specify that this target should run before or after the specified targets.
Demo - InitialTargets
Demo – InitialTargets(2)
Demo – InitialTargets(3)
Demo – DefaultTargets
Demo – DefaultTargets(2)
Demo - DependsOnTargets
Demo – DependsOnTargets(2)
Demo – DependsOnTargets(2)
Demo –BeforeTargets
Demo – AfterTargets
Demo –BeforeTargets and AfterTargets
Determining the Target Build Order
InitialTargets targets are run.
Targets specified on the command line by the /target switch are run. If you specify no targets on the command line, then the DefaultTargets targets are run. If neither is present, then the first target encountered is run.
The Condition attribute of the target is evaluated. If the Condition attribute is present and evaluates to false, the target isn't executed and has no further effect on the build.
Before a target is executed, its DependsOnTargets targets are run.
Before a target is executed, any target that lists it in a BeforeTargets attribute is run.
Before a target is executed, its Inputs attribute and Outputs attribute are compared. If MSBuild determines that any output files are out of date with respect to the corresponding input file or files, then MSBuild executes the target. Otherwise, MSBuild skips the target.
After a target is executed or skipped, any target that lists it in an AfterTargets attribute is run.
References
http://msdn.microsoft.com/en-us/library/vstudio/7z253716.aspx
http://msdn.microsoft.com/en-us/library/ms164313.aspx
http://msdn.microsoft.com/zh-tw/library/microsoft.build.utilities.taskitem.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ms164287.aspx
~ THE END ~