2013-05-01 3 views
0

У меня есть сценарий MSBuild с определенными Target и ItemGroup.MSBuild Свойство не обновляется, чтобы отразить идентификатор текущего элемента

Внутри цели, я определим PropertyGroup следующим образом:

<PropertyGroup> 
    <StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage> 
    <FinishedMessage>##teamcity[testFinished name='%(Names.Identity)']</FinishedMessage> 
    <TestStatus>testPassed</TestStatus> 
</PropertyGroup> 

Проблема в том, что эти свойства, как представляется, оцениваются только один раз (когда цель называется), и поэтому не отражают правильное значение (метаданные идентичности) элемента, который я повторяю.

Есть ли способ отсрочить (ленивый) оценить свойства во время выполнения? Или каков правильный способ определения «динамических» свойств, которые необходимо изменить при итерации ItemGroup?

ответ

0

Не знаете, к чему стремится пункт itemgroup в группе свойств, может быть, что-то вроде этого?

<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> 
+0

Дело в том, что я пытаюсь упростить выражения, которые необходимо записать, чтобы избежать ошибок. Я хотел бы создать группу свойств, которая для каждого запуска элемента Identity группы группы элементов должна содержать соответствующий элемент, а затем использовать это свойство внутри цели (вместо того, чтобы писать всю строку в нужном месте). –