Есть ли способ показать время сборки всего решения в Visual Studio?

Я знаю, что есть способ отображения времени сборки каждого проекта, содержащегося в решении в visual studio. Но то, что я ищу, - это общее время, затраченное на создание целого решения, с момента, когда я нажал на сборку, до момента его создания.

Есть ли все-таки сделать это? Запуск Visual Studio 2008.

Ответы

Ответ 1

EDIT: Здесь вы можете написать время сборки непосредственно в окне сборки.

Откройте Visual Studio Macro 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 в соответствии с вашими предпочтениями.

Ответ 2

Инструменты- > Параметры- > Проекты и решения- > Настройки проекта VС++- > Время сборки

Ответ 3

Это старый вопрос, но я подумал, что некоторые могут найти его полезным.

Я написал расширение для VS2015 и VS2017. Он отображает время начала и окончания каждого проекта, выраженное относительно начала полной сборки. Следовательно, время окончания последнего проекта - это общее время сборки решения.

Я написал больше о расширении здесь.