Arrêter automatiquement la génération Visual C ++ 2008 lors de la première erreur de compilation?

Je sais que je peux comstackr des fichiers sources individuels, mais parfois – par exemple, lors de l’édition d’un fichier d’en-tête utilisé par de nombreux fichiers .cpp – plusieurs fichiers sources doivent être recompilés. C’est pour ça que c’est construit.

Le comportement par défaut de la commande “Générer” dans VC9 (Visual C ++ 2008) consiste à tenter de comstackr tous les fichiers qui en ont besoin. Parfois, cela aboutit simplement à de nombreuses compilations échouées. Je fais généralement attention aux erreurs et ctrl-break pour arrêter la construction manuellement.

Existe-t-il un moyen de le configurer de telle sorte que la génération s’arrête automatiquement dès la première erreur de compilation (et non la première génération de projet ayant échoué)?

Je suis venu avec un meilleur gars de macro. Il s’arrête immédiatement après la première erreur / s (dès que la fenêtre de construction est mise à jour).

Visual Studio -> Outils -> Macros -> Macro IDE … (ou 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 Ssortingng = 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 

J’espère que ça marche pour vous les gars.

Cela peut être fait en ajoutant une macro qui est exécutée en réponse à l’événement OnBuildProjConfigDone.

La macro est la suivante:

 Private Sub BuildEvents_OnBuildProjConfigDone(ByVal Project As Ssortingng, ByVal ProjectConfig As Ssortingng, ByVal Platform As Ssortingng, ByVal SolutionConfig As Ssortingng, ByVal Success As Boolean) Handles BuildEvents.OnBuildProjConfigDone If Success = False Then DTE.ExecuteCommand("Build.Cancel") End If End Sub 

Oui, ça marche bien sur 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 

Je sais que la question était pour VS 2008, mais je l’ai trouvé lors de la recherche de la même réponse pour VS 2012. Comme les macros ne sont plus sockets en charge en 2012, les solutions macro ne fonctionneront plus.

Vous pouvez télécharger une extension qui fonctionne apparemment dans VS 2010 et 2012 ici . Je peux confirmer que cela fonctionne bien dans VS 2012.

Le lien original vers l’extension a été donné dans cette réponse.

Il y a cet article – pas sûr s’il arrête la construction à la première erreur ou le premier projet ayant échoué dans une solution.

Ctrl-break l’arrêtera aussi manuellement.

Maintenant, s’il y avait un moyen de l’arrêter, dépenser 10 minutes pour reconstruire l’intelisense après l’échec d’une construction!

Vous pouvez également télécharger cette extension, semble fonctionner pour chaque version de Visual Studio