Есть ли способ легко вывести текущее время в MSBuild (версия 3.5)?
Я хотел бы вывести текущее время (желательно перед каждой задачей или как минимум при запуске / завершении каждой цели) при вызове MSBuild 3.5.
Я попытался создать цель, которую я бы постоянно называл следующим образом:
<Target Name="EchoTime">
<Time Format="yyyy-MM-dd HH:mm:ss.fff">
<Output TaskParameter="FormattedTime" PropertyName="currentTime" />
</Time>
<Message Text = "$(currentTime)" />
</Target>
... но оказывается, что одна цель может вызвать другую цель только один раз за выполнение.
Так что, если я попробую...
<Target Name="TimeTest" >
<Message Text = "--------------------------------------------------" />
<CallTarget Targets="EchoTime" />
<Message Text = " " />
<Message Text = "Try calling EchoTime again" />
<Message Text = " " />
<CallTarget Targets="EchoTime" />
<Message Text = "--------------------------------------------------" />
</Target>
Тогда вывод выглядит как...
Build started 10/12/2011 2:24:52 PM.
Project "C:\Temp\MSBuildSandbox\MSBuild_EchoTime.xml" on node 0 (TimeTest target(s)).
--------------------------------------------------
EchoTime:
2011-10-12 14:24:52.756
TimeTest:
Try calling EchoTime again
--------------------------------------------------
Done Building Project "C:\Temp\MSBuildSandbox\MSBuild_EchoTime.xml" (TimeTest target(s)).
Кто-нибудь знает простой способ добиться этого?
1 ответ
Решение
CallTarget
не может выполнить одну и ту же цель дважды, но есть обходной путь, использующий MSBuild
задача:
<Target Name="TimeTest" >
<Message Text = "--------------------------------------------------" />
<MSBuild
Targets="EchoTime"
Projects="$(MSBuildProjectFile)"
Properties="prop1=val1"
/>
<Message Text = " " />
<Message Text = "Try calling EchoTime again" />
<Message Text = " " />
<MSBuild
Targets="EchoTime"
Projects="$(MSBuildProjectFile)"
Properties="prop1=val2"
/>
<Message Text = "--------------------------------------------------" />
</Target>
Обратите внимание на установку значения для prop1
на другое значение для каждого последующего вызова.