Domanda

So di poter compilare singoli file sorgente, ma a volte - diciamo, quando si modifica un file di intestazione usato da molti file .cpp - è necessario ricompilare più file sorgente. Ecco a cosa serve Build.

Comportamento predefinito di " Build " comando in VC9 (Visual C ++ 2008) è tentare di compilare tutti i file che ne hanno bisogno. A volte questo porta a molte compilazioni fallite. Di solito cerco solo errori e premo ctrl-break per interrompere manualmente la compilazione.

Esiste un modo per configurarlo in modo tale che la compilazione si arresti al primissimo errore di compilazione (non alla prima build del progetto fallita) automaticamente?

È stato utile?

Soluzione

Mi sono inventato un migliore macro ragazzi. Si interrompe immediatamente dopo il primo / i errore / i (non appena viene aggiornata la finestra di generazione).

Visual Studio - > Strumenti - > Macro - > Macro IDE ... (o ALT + F11)

Private Sub OutputWindowEvents_OnPaneUpdated(ByVal pPane As OutputWindowPane) Handles OutputWindowEvents.PaneUpdated
    If Not (pPane.Name = "Build") Then Exit Sub

    pPane.TextDocument.Selection.SelectAll()
    Dim Context As String = pPane.TextDocument.Selection.Text
    pPane.TextDocument.Selection.EndOfDocument()

    Dim found As Integer = Context.IndexOf(": error ")

    If found > 0 Then
        DTE.ExecuteCommand("Build.Cancel")
    End If

End Sub 

Spero che funzioni per voi ragazzi.

Altri suggerimenti

Questo può essere fatto aggiungendo una macro che viene eseguita in risposta all'evento OnBuildProjConfigDone.

La macro è la seguente:

Private Sub BuildEvents_OnBuildProjConfigDone(ByVal Project As String, ByVal ProjectConfig As String, ByVal Platform As String, ByVal SolutionConfig As String, ByVal Success As Boolean) Handles BuildEvents.OnBuildProjConfigDone

  If Success = False Then
    DTE.ExecuteCommand("Build.Cancel")
  End If

End Sub

Sì, funziona perfettamente su MSVC 2005-2010:

Public Module EnvironmentEvents
  Private Sub OutputWindowEvents_OnPaneUpdated(ByVal pPane As OutputWindowPane) Handles OutputWindowEvents.PaneUpdated
    If Not (pPane.Name = "Build") Then Exit Sub

    Dim foundError As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": error")
    Dim foundFatal As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": fatal error")

    If foundError Or foundFatal Then
      DTE.ExecuteCommand("Build.Cancel")
    End If
  End Sub
End Module

So che la domanda era per VS 2008, ma mi sono imbattuto in esso durante la ricerca della stessa risposta per VS 2012. Poiché le macro non sono più supportate nel 2012, le soluzioni macro non funzioneranno più.

Puoi scaricare un'estensione che apparentemente funziona in VS 2010 e 2012 qui . Posso confermare che funziona bene in VS 2012.

Il link originale all'estensione è stato fornito nella questa risposta.

C'è questo post - non sono sicuro se interrompe la compilazione al primo errore o al primo progetto fallito in una soluzione.

Ctrl-break la interromperà anche manualmente.

Ora, se ci fosse un modo per fermarlo, impiegando 10 minuti a ricostruire l'intelisense dopo che un build è fallito!

Puoi anche scaricare questa estensione sembra funzionare per ogni versione di Visual Studio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top