1

アイテムに基づいてプロパティ値を設定しようとしていますが、プロパティがアイテムに気付かないようですたとえば、私のコードは次のようになります

<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)を読み取ることができないと表示されます。何かが足りませんか?ありがとうございました!

4

1 に答える 1

2

プロパティは、アイテムの前に評価されます。グループを遅延評価のターゲット、「書き込み」または汎用のInitialTargetsに移動します。

プロパティとアイテムの評価順序を参照してください。

于 2013-01-31T01:21:47.987 に答える