2010-01-21 15 views

risposta

11

EDIT: Ecco un modo è possibile scrivere il tempo di costruzione direttamente alla finestra di compilazione.

Apre l'IDE di Visual Studio Macro.
Passare a MyMacros> EnvironmentEvents.
In MyMacros, aggiungere un riferimento a System.Windows.Forms (per il codice seguente per visualizzare una finestra popup).
Aggiungere questo codice al modulo 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 

Quando costruire o ricostruire la soluzione completa, alla fine, la costruzione/ricostruzione durata verrà stampato nella finestra di output di generazione. È possibile modificare le condizioni in IsBuild in base alle proprie preferenze.

+1

Ho aggiunto questo codice anche a questa domanda: http://stackoverflow.com/questions/523220/awesome-visual-studio-macros Spero che anche altri che hanno macro altrettanto utili li aggiungeranno anche lì. L'editor di Visual Studio Macro è molto potente, ma non ho mai incontrato un buon repository macro. –

+0

EDIT: Stranamente, su uno dei miei computer viene catturato l'evento build ended ... ma non supera il test IsBuild, quindi restituisce semplicemente. Uso Visual Assist X sul computer che non è in grado di rilevare l'evento, se questo fa alcuna differenza. – levesque

+0

Aprire l'elenco degli errori nell'IDE delle macro (menu Visualizza> Elenco errori) e verificare se sono presenti errori. L'IDE Macro è piuttosto strano per gli errori; abbastanza spesso non vi darà alcun segno che esistano se non il fatto che le macro non funzionano. Molto probabilmente ti manca una dichiarazione Imports o qualcosa del genere. –

3

Strumenti> Opzioni> Progetti e Solutions-> VC++ Progetto Impostazioni-> Crea Timing

+0

Questo produce il tempo di costruzione dei singoli progetti. – levesque

+1

Bugger ... Beh, potresti aggiungerli tutti a mano ... non così difficile da fare ... – Goz

+2

Sì, ma sono pigro ... ci sono circa 30 progetti nella mia soluzione ... – levesque

Problemi correlati