This section provides an overview of what msbuild is, and why a developer might want to use it.
It should also mention any large subjects within msbuild, and link out to the related topics. Since the Documentation for msbuild is new, you may need to create initial versions of those related topics.
<PropertyGroup>
<!-- Definition of a Property named "TestCondition". A PropertyGroup may also be placed inside a Target. -->
<TestCondition>True</TestCondition>
</PropertyGroup>
<!-- This Target will run after the "Clean" Target, subject to a Condition. -->
<Target Name="SpecificTarget" AfterTargets="Clean" Condition=" '$(TestCondition)' == 'True' ">
<!-- Displaying a custom message -->
<Message Text="Here is my Specific Target" Importance="Low" />
<!-- Here come your specific code. -->
</Target>
HelloWorld.proj
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="SayHello">
<!-- Properties can be passed as command line parameters. i.e. /p:Name=MyName
or /p:Name="My Name" (Use quotes if the value includes spaces) -->
<PropertyGroup>
<Name Condition="'$(Name)'==''">Rolo</Name>
</PropertyGroup>
<!-- Items can't be passed as command line parameters. -->
<!-- Items can include metadata. i.e. URL -->
<ItemGroup>
<People Include="World"/>
<People Include="StackOverflow">
<URL>http://stackoverflow.com</URL>
</People>
<People Include="Google">
<URL>http://google.com</URL>
</People>
</ItemGroup>
<!-- Targets can be called using it's name. i.e. /t:SayHello -->
<Target Name="SayHello">
<!-- You can have as many Tasks as required inside a Target. -->
<!-- Tasks can be executed conditionally. -->
<Message Condition="'%(People.URL)'==''" Text="Hello %(People.Identity), my name is $(Name)! "/>
<Message Condition="'%(People.URL)'!=''" Text="Hello %(People.Identity), my name is $(Name)!. Your URL is %(People.URL) "/>
</Target>
</Project>
Execute with:
On Windows there are three choices to get MSBuild:
On Linux