MSBuild属性未更新以反映当前项的标识

时间:2013-05-01 08:26:47

标签: msbuild itemgroup

我有一个MSBuild脚本,其中定义了TargetItemGroup

在目标内部,我定义了一个像这样的PropertyGroup:

<PropertyGroup>
    <StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage>
    <FinishedMessage>##teamcity[testFinished name='%(Names.Identity)']</FinishedMessage>
    <TestStatus>testPassed</TestStatus>
</PropertyGroup>

问题是,这些属性似乎只被评估一次(当调用目标时),因此不会反映我正在迭代的项的正确值(标识元数据)。

有没有办法在执行期间延迟(延迟)评估属性? 或者,在迭代ItemGroup时,定义需要更改的“动态”属性的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

不确定将itemgroup置于属性组中的重点是尝试实现,也许是这样的?

<Project  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Tests Include="Hack;Destroy;Terminate"/>
</ItemGroup>

<Target Name="Iterate">
<Message text="Started %(Tests.Identity)"/>
</Target>
</Project>