2011-06-27 38 views
5

Tôi có tệp TFSBuild.proj và tôi cần thêm nhật ký ngày/giờ để thống kê tức là phần nào của bản dựng mất nhiều thời gian nhất và chúng tôi có thể cải tiến quy trình ở đâu.Cách thêm dấu thời gian vào TFSBuild.proj?

Bản dựng sẽ xuất nhật ký thành BuildLog.txt. Tôi sử dụng các thẻ sau để có được thông báo tùy chỉnh trong tệp BuildLog.txt, nhưng tôi cần thêm dấu thời gian cho mỗi thư.

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

Có thể nhận dấu thời gian trong thư không? Có biến MSBuild nhận giá trị ngày giờ hiện tại không? Trong ví dụ trên, StartTimeGoesHere sẽ giống như "01 Jan 2001 14:10:12" và EndTimeGoesHere sẽ giống như "01 Jan 2001 14:14:43".

Trả lời

8

Bạn không cần bất kỳ hỗ trợ của bên thứ ba nào miễn là bạn đang sử dụng MSBuild 4.0. Chỉ cần sử dụng một chức năng hữu trong một mục tiêu,

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

mà sẽ tạo ra giá trị sau với $ (DateTimeNow),

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

Làm việc như một sự quyến rũ, cảm ơn. – Alicia

1

Bạn cần sử dụng MS Build Community Tasks. Nó có một nhiệm vụ thời gian sẽ cung cấp cho bạn những gì bạn muốn.

http://msbuildtasks.tigris.org/

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

Bạn sẽ cần phải thiết lập một sự khởi đầu và kết thúc thời gian và bạn sẽ cần phải cẩn thận về nơi bạn gọi các nhiệm vụ.

+0

hữu ích cho những người trên các phiên bản cũ của MSBuild. –

Các vấn đề liên quan