有没有办法在Visual Studio中显示整个解决方案的构建时间?

时间:2010-01-21 18:30:48

标签: visual-studio visual-studio-2008 build-time

我知道有a way to display the build time of each project contained in a solution in visual studio。但我正在寻找的是构建整个解决方案所花费的总时间,从我点击构建的那一刻起到完成它的那一刻。

有没有这样做?运行Visual Studio 2008。

3 个答案:

答案 0 :(得分:11)

编辑:这是一种可以将构建时间直接写入构建窗口的方法。

打开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中的条件以满足您的偏好。

答案 1 :(得分:3)

工具 - >选项 - >项目和解决方案 - > VC ++项目设置 - >构建计时

答案 2 :(得分:1)

这是一个古老的问题,但我认为有些人仍然会发现它有用。

我已经为VS2015和VS2017编写了扩展。它显示每个项目的开始和结束时间,相对于整个构建的开始表示。因此,最后一个项目的结束时间是该解决方案的总构建时间。

我发布了有关扩展名here的更多信息。