Как установить значение свойства на основе элемента и использовать это свойство в качестве ввода функции свойства?
Я пытаюсь установить значение свойства на основе элемента, но свойство, кажется, не замечает элемент Например, мой код похож
<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 ответ
Решение
Свойства оцениваются перед любыми элементами. Переместите группу в целевой объект для отложенной оценки, ваш "Write" или общий InitialTargets.