2011-06-27 14 views
5

Mam plik TFSBuild.proj i muszę dodać rejestrowanie daty/czasu dla statystyk, tj. Które części kompilacji zabierają najwięcej czasu i gdzie możemy ulepszyć ten proces.Jak dodać sygnaturę czasową do TFSBuild.proj?

Kompilacja generuje log do pliku BuildLog.txt. Używam następujących znaczników, aby uzyskać niestandardowe wiadomości w pliku BuildLog.txt, ale muszę dodać sygnaturę czasową do każdej wiadomości.

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

Czy można uzyskać sygnaturę czasową w wiadomości? Czy istnieje zmienna MSBuild, która pobiera bieżącą wartość datetime? W powyższym przykładzie StartTimeGoesHere będzie wyglądać jak "01 stycznia 2001 14:10:12", a EndTimeGoesHere będzie mieć postać "01 stycznia 2001 14:14:43".

Odpowiedz

8

Nie potrzebujesz pomocy osób trzecich, dopóki używasz MSBuild 4.0. Wystarczy użyć funkcji nieruchomości w cel,

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

która stworzy następującą wartość dla $ (DateTimeNow)

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

Działa jak urok, dzięki. – Alicia

1

Musisz użyć zadań MS Build Community. Ma zadanie Czas, które da ci to, czego chcesz.

http://msbuildtasks.tigris.org/

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

Musisz skonfigurować czas rozpoczęcia i zakończenia i trzeba być ostrożnym, gdzie wywołać zadania.

+0

przydatna dla osób w starszych wersjach MSBuild. –

Powiązane problemy