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

问题描述 投票:0回答:1

我正在尝试根据 Item 设置属性值 但物业似乎没有注意到 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) 我错过了什么吗? 谢谢!

msbuild .net msbuild-4.0 msbuild-propertygroup
1个回答
2
投票

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

请参阅财产和物品评估令

© www.soinside.com 2019 - 2024. All rights reserved.