2010-01-21 15 views

Respuesta

11

EDIT: Aquí está una manera que usted puede escribir el tiempo de construcción directamente a la ventana de generación.

Abra Visual Studio Macro IDE.
Navegue a MyMacros> EnvironmentEvents.
En MyMacros, agregue una referencia a System.Windows.Forms (para que el código siguiente muestre una ventana emergente).
añadir este código al módulo 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 

Cuando a construir o reconstruir la solución completa, al final, la construcción/reconstrucción duración será impreso a la ventana de resultados de generación. Puede cambiar las condiciones en IsBuild para adaptarlas a sus preferencias.

+1

También he agregado este código a esta pregunta: http://stackoverflow.com/questions/523220/awesome-visual-studio-macros Espero que otros que tengan macros de utilidad similar también los agreguen allí. El editor de Visual Studio Macro es muy potente, pero no he encontrado un buen repositorio de macros en ninguna parte. –

+0

EDITAR: Curiosamente, en una de mis computadoras el evento de finalización de construcción está atrapado ... pero no pasa la prueba IsBuild, por lo que solo regresa. Uso Visual Assist X en la computadora que no puede detectar el evento, si eso marca alguna diferencia. – levesque

+0

Abra la lista de errores en el IDE de macro (menú Ver> Lista de errores) y vea si hay errores en la lista. El Macro IDE es un poco extraño sobre errores; muy a menudo no le dará ninguna señal de que existan más que el hecho de que las macros no funcionan. Lo más probable es que te falte una declaración de Importaciones o algo así. –

3

Herramientas-> Opciones-> Proyectos y Soluciones> VC++ Proyecto Configuración-> Construir sincronización

+0

Esto genera el tiempo de compilación de proyectos individuales. – levesque

+1

Bugger ... Bueno, podrías sumarlos todos a mano ... no ESO difícil de hacer ... – Goz

+2

Sí, pero soy flojo ... hay alrededor de 30 proyectos en mi solución ... – levesque

Cuestiones relacionadas