MSBuild属性未更新以反映当前项';身份
我有一个MSBuild脚本,其中定义了MSBuild属性未更新以反映当前项';身份,msbuild,itemgroup,Msbuild,Itemgroup,我有一个MSBuild脚本,其中定义了目标和项目组 在目标内部,我定义了一个PropertyGroup,如下所示: <PropertyGroup> <StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage> <FinishedMessage>##teamcity[testFinished name='%(Names.Identit
目标
和项目组
在目标内部,我定义了一个PropertyGroup,如下所示:
<PropertyGroup>
<StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage>
<FinishedMessage>##teamcity[testFinished name='%(Names.Identity)']</FinishedMessage>
<TestStatus>testPassed</TestStatus>
</PropertyGroup>
##teamcity[TestStart name='%(Names.Identity)']
##teamcity[testFinished name='%(Names.Identity)']
通过测试
问题是,这些属性似乎只被计算一次(当调用目标时),因此不能反映我正在迭代的项的正确值(标识元数据)
在执行过程中是否有延迟(延迟)评估属性的方法?
或者,当迭代
项目组时,定义需要更改的“动态”属性的正确方法是什么?不确定将项目组放入属性组的目的是什么,可能是这样的
<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>
重点是我正在尝试简化需要编写的表达式,以避免任何错误。我想创建一个属性组,对于batched itemgroup的Identity元素的每次运行,该属性组都将包含相关的项,然后在目标内部使用该属性(而不是在需要的每个位置写入完整字符串)。