2011-06-27 15 views
5

Ho un file TFSBuild.proj e devo aggiungere la registrazione di data/ora per le statistiche, ad esempio, quali parti delle build impiegano più tempo e dove possiamo migliorare il processo.Come aggiungere un timestamp a TFSBuild.proj?

Il build restituisce il log a BuildLog.txt. Io uso i seguenti tag per ottenere messaggi personalizzati nel file BuildLog.txt, ma ho bisogno di aggiungere un timestamp a ciascun messaggio.

<Message Text="Debug: BeforeGet start: StartTimeGoesHere"></Message> 
<Message Text="Debug: BeforeGet end: EndTimeGoesHere"></Message> 

È possibile ottenere una data/ora nel messaggio? Esiste una variabile MSBuild che ottiene il valore datetime corrente? Nell'esempio sopra, StartTimeGoesHere sarà qualcosa come "01 gen 2001 14:10:12" e EndTimeGoesHere sarà qualcosa come "01 gen 2001 14:14:43".

risposta

8

Non è necessario alcun supporto di terze parti finché si utilizza MSBuild 4.0. Basta usare una funzione di proprietà all'interno di un bersaglio,

<PropertyGroup> 
    <DateTimeNow>$([System.DateTime]::Now)</DateTimeNow> 
</PropertyGroup> 

che creerà il seguente valore per $ (DateTimeNow),

6/26/2011 9:00:27 PM 
+0

Funziona come un incantesimo, grazie. – Alicia

1

È necessario utilizzare MS Build Community Tasks. Ha un compito a tempo che ti darà quello che vuoi.

http://msbuildtasks.tigris.org/

<Time Format="yyyy-MM-dd hh:mm:ss"> 
    <Output TaskParameter="FormattedTime" PropertyName="currentTime" /> 
</Time> 

Sarà necessario impostare un tempo di inizio e di fine e sarà necessario stare attenti a dove si richiama i compiti.

+0

utile per le persone su versioni precedenti di MSBuild. –

Problemi correlati