Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSBuild属性未更新以反映当前项';身份_Msbuild_Itemgroup - Fatal编程技术网

MSBuild属性未更新以反映当前项';身份

MSBuild属性未更新以反映当前项';身份,msbuild,itemgroup,Msbuild,Itemgroup,我有一个MSBuild脚本,其中定义了目标和项目组 在目标内部,我定义了一个PropertyGroup,如下所示: <PropertyGroup> <StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage> <FinishedMessage>##teamcity[testFinished name='%(Names.Identit

我有一个MSBuild脚本,其中定义了
目标
项目组

在目标内部,我定义了一个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元素的每次运行,该属性组都将包含相关的项,然后在目标内部使用该属性(而不是在需要的每个位置写入完整字符串)。