我知道有a way to display the build time of each project contained in a solution in visual studio。但是我所需要的是構建整個解決方案所需的總時間,從我點擊構建的那一刻開始到構建完成的那一刻。有沒有辦法在Visual Studio中顯示整個解決方案的構建時間?
有沒有辦法做到這一點?在運行Visual Studio 2008
我知道有a way to display the build time of each project contained in a solution in visual studio。但是我所需要的是構建整個解決方案所需的總時間,從我點擊構建的那一刻開始到構建完成的那一刻。有沒有辦法在Visual Studio中顯示整個解決方案的構建時間?
有沒有辦法做到這一點?在運行Visual Studio 2008
編輯:這裏是你可以直接寫在編譯時間到生成窗口的方式。
打開Visual Studio宏IDE。
導航到MyMacros> EnvironmentEvents。
在MyMacros下,添加一個對System.Windows.Forms的引用(對於下面的代碼來顯示一個彈出窗口)。
這個代碼添加到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
當構建或重建完整的解決方案,在結束時,建立/重建的持續時間將被打印到生成輸出窗口。您可以更改IsBuild中的條件以適應您的偏好。
我已經將此代碼添加到此問題中:http://stackoverflow.com/questions/523220/awesome-visual-studio-macros我希望其他具有類似有用宏的人也將其添加到此處。 Visual Studio宏編輯器功能非常強大,但是我沒有在任何地方運行好宏庫。 – 2010-01-21 19:50:28
編輯:奇怪的是,在我的電腦之一構建結束事件是catched ...但不通過IsBuild測試,所以只是返回。我在計算機上使用Visual Assist X,如果這有什麼區別,就不能檢測到事件。 – levesque 2010-01-21 20:03:24
在宏IDE(查看菜單>錯誤列表)中打開錯誤列表,查看是否列出了任何錯誤。宏IDE對於錯誤有點奇怪;除了宏不起作用之外,它往往不會給你任何跡象。很可能你錯過了一個Imports語句或其他東西。 – 2010-01-21 20:06:06