2010-01-21 29 views
14

Tôi biết có a way to display the build time of each project contained in a solution in visual studio. Nhưng những gì tôi đang tìm kiếm là tổng thời gian cần thiết để xây dựng một giải pháp hoàn chỉnh, từ thời điểm tôi nhấp vào xây dựng, đến thời điểm nó được thực hiện.Có cách nào để hiển thị thời gian xây dựng của toàn bộ giải pháp trong Visual Studio không?

Có cách nào để thực hiện việc này không? Chạy Visual Studio 2008.

Trả lời

11

EDIT: Đây là một cách bạn có thể viết thời gian xây dựng trực tiếp đến việc xây dựng cửa sổ.

Mở IDE Visual Studio Macro.
Điều hướng đến MyMacros> EnvironmentEvents.
Trong MyMacros, hãy thêm tham chiếu đến System.Windows.Forms (cho mã bên dưới để hiển thị cửa sổ bật lên).
Thêm mã này vào module EnvironmentEvents:

Dim buildStart As Date 

Private Function IsBuild(ByVal scope As EnvDTE.vsBuildScope, ByVal action As EnvDTE.vsBuildAction) As Boolean 
    Return scope = vsBuildScope.vsBuildScopeSolution AndAlso (action = vsBuildAction.vsBuildActionBuild OrElse action = vsBuildAction.vsBuildActionRebuildAll) 
End Function 

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin 
    If (IsBuild(Scope, Action)) Then 
     buildStart = Date.Now 
    End If 
End Sub 

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone 
    If (IsBuild(Scope, Action)) Then 
     Dim buildTime = Date.Now - buildStart 
     WriteToBuildWindow(String.Format("Build time: {0}", buildTime.ToString)) 
    End If 
End Sub 

Private Sub WriteToBuildWindow(ByVal message As String) 
    Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput) 
    Dim ow As OutputWindow = CType(win.Object, OutputWindow) 
    For Each owPane As OutputWindowPane In ow.OutputWindowPanes 
     If (owPane.Name.Equals("Build")) Then 
      owPane.OutputString(message) 
      Exit For 
     End If 
    Next 
End Sub 

Khi bạn xây dựng hoặc xây dựng lại các giải pháp đầy đủ, ở cuối, xây dựng/xây dựng lại thời gian sẽ được in vào cửa sổ xây dựng đầu ra. Bạn có thể thay đổi các điều kiện trong IsBuild cho phù hợp với sở thích của bạn.

+1

Tôi cũng đã thêm mã này vào câu hỏi này: http://stackoverflow.com/questions/523220/awesome-visual-studio-macros Tôi hy vọng những người khác có macro hữu ích tương tự cũng sẽ thêm chúng vào đó. Trình soạn thảo Visual Studio Macro là rất mạnh mẽ, nhưng tôi đã không chạy trên một kho lưu trữ vĩ mô tốt bất cứ nơi nào. –

+0

EDIT: Rất kỳ lạ, trên một trong các máy tính của tôi, sự kiện đã kết thúc xây dựng được bắt ... nhưng không vượt qua bài kiểm tra IsBuild, vì vậy chỉ cần trả về. Tôi sử dụng Visual Assist X trên máy tính không thể phát hiện sự kiện, nếu điều đó tạo ra sự khác biệt .. – levesque

+0

Mở danh sách lỗi trong Macro IDE (Xem menu> Danh sách lỗi) và xem có lỗi nào được liệt kê không. Macro IDE là loại kỳ lạ về lỗi; khá thường xuyên nó sẽ không cung cấp cho bạn bất kỳ dấu hiệu nào họ tồn tại ngoài thực tế là các macro không hoạt động. Rất có thể bạn đang thiếu một câu lệnh Nhập khẩu hoặc một cái gì đó. –

3

Tools-> Options-> Dự án và Giải pháp> VC++ Dự án Settings-> Xây dựng Thời gian

+0

Điều này dẫn đến thời gian xây dựng của các dự án riêng lẻ. – levesque

+1

Bugger ... Vâng, bạn có thể thêm tất cả bằng tay ... không phải là khó làm ... – Goz

+2

Vâng, nhưng tôi lười biếng ... có khoảng 30 dự án trong giải pháp của tôi ... – levesque

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