我知道有一种方法可以显示 Visual Studio 解决方案中包含的每个项目的构建时间。但我正在寻找的是构建整个解决方案所花费的总时间,从我单击构建的那一刻到完成的那一刻。
有没有办法做到这一点?运行 Visual Studio 2008。
我知道有一种方法可以显示 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 中的条件以满足您的偏好。
工具->选项->项目和解决方案->VC++项目设置->构建时序
这是一个老问题,但我认为有些人可能仍然觉得它有用。
我已经为 VS2015 和 VS2017 编写了一个扩展。它显示每个项目的开始和结束时间,相对于整个构建的开始表示。因此,最后一个项目的结束时间是解决方案的总构建时间。
我在这里发布了更多关于扩展的信息。