Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to output a variable value to the log from MSBuild

How do I output a variable value to the log from MSBuild?

I am trying to debug an MSBuild script and would like to output a variable's value to the log.

like image 789
Simon Avatar asked Jan 23 '11 02:01

Simon


1 Answers

You can actually debug MSBuild scripts with Visual Studio 2010 now. It requires some hacking, and it isn't officially supported, but it is an option.

Otherwise use the Message task. Normal rules for referencing Properties, Items and Item Metadata (also referred to as batching) apply.

This example:

<Project DefaultTargets="Build"          xmlns="http://schemas.microsoft.com/developer/msbuild/2003">   <ItemGroup>     <TestItem Include="test1" />     <TestItem Include="test2" />     <TestItem Include="test3" />   </ItemGroup>    <PropertyGroup>     <TestProperty>Property Value</TestProperty>   </PropertyGroup>    <Target Name="TestMessage" AfterTargets="Build" >      <!-- Use $(Property Name) to reference a property -->     <Message Text="$(TestProperty)" Importance="high"/>      <!-- Use @(Item Name) to output a semi-colon          separated list of items on one line      -->     <Message Text="@(TestItem)" Importance="high"/>      <!-- Use %(Item Name.Metadata Property Name) to           call the Message task once for each item.   -->     <!-- This will output each item on a separate line -->     <Message Text="%(TestItem.Identity)" Importance="high"/>    </Target> </Project> 

Will produce this output:

Property Value test1;test2;test3 test1 test2 test3 
like image 52
Aaron Carlson Avatar answered Oct 08 '22 01:10

Aaron Carlson