Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

MSBuild properties & items

Долго мучался, пока до меня не дошло: Property и Item - не взаимозаменяемые!!!

Например, если Task имеет
[Output]
String XXX {
get { ... }
}
То конструкция <Output TaskParameter="XXX" ItemName="MyItem"/> тихонько запихнет в MyItem пустое значение! Правильно: <Output TaskParameter="XXX" PropertyName="MyProperty"/>

Анологично с
[Output]
ITaskItem XXX {
get { ... }
}
<Output TaskParameter="XXX" ItemName="MyItem"/>

Кстати, для того, чтобы создать property или item динамически, можно воспользоваться CreateItem или CreateProperty

<CreateItem Include="$(MSBuildProjectDirectory)\**\*.*">
<Output TaskParameter="Include" ItemName="AllFilesUnderProjectFolder"/>
</CreateItem>

<CreateProperty Value="$(XXX).$(YYY)">
<Output TaskParameter="Value" PropertyName="XXX_YYY"/>
</CreateProperty>

0 коммент.:

Отправить комментарий

Copyright 2007-2011 Chabster