如何根据item设置属性值并使用该属性作为属性函数的输入?

时间:2013-01-30 23:17:05

标签: msbuild .net msbuild-4.0 msbuild-propertygroup

我正在尝试根据Item设置属性值 但财产似乎没有注意到物品 例如,我的代码就像

<ItemGroup>
   <temp Include="test.txt"></temp>
</ItemGroup>

<PropertyGroup>
  <Name>%(temp.Identity)</Name>
  <Test>$([system.IO.File]::ReadAllText('$(Name)').Replace('ABC', '###'))</Test> 
</PropertyGroup>    

<Target Name="Write">
   <Message Text="$(Name)"/>
   <WriteLinesToFile File="%(temp.Filename).asl" Lines="$(Test)" Overwrite="true"/> 
</Target>

但是当我运行它时,它说它无法读取%(temp.Identity) 我错过了什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

在任何项目之前评估属性。将组移动到延迟评估的目标,即“写入”或通用InitialTargets

请参阅Property and Item Evaluation Order

相关问题