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
Например, если 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 коммент.:
Отправить комментарий