¿Detener automáticamente la comstackción de Visual C ++ 2008 en el primer error de comstackción?

Sé que puedo comstackr archivos fuente individuales, pero a veces, por ejemplo, al editar un archivo de cabecera utilizado por muchos archivos .cpp , se deben recomstackr varios archivos fuente. Para eso está Build.

El comportamiento predeterminado del comando “Generar” en VC9 (Visual C ++ 2008) es intentar comstackr todos los archivos que lo necesitan. Algunas veces esto solo resulta en muchas comstackciones fallidas. Normalmente solo observo los errores y presiono ctrl-break para detener la comstackción manualmente.

¿Hay alguna forma de configurarlo para que la comstackción se detenga automáticamente al primer error de comstackción (no la primera comstackción de proyecto fallida)?

Se me ocurrió un mejor macro chicos. Se detiene inmediatamente después del primer error / s (tan pronto como se actualiza la ventana de comstackción).

Visual Studio -> Herramientas -> Macros -> 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 

Espero que funcione para ustedes.

Esto se puede hacer agregando una macro que se ejecuta en respuesta al evento OnBuildProjConfigDone.

La macro es la siguiente:

 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í, esto funciona bien en 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 

Sé que la pregunta era para VS 2008, pero me topé con ella cuando buscaba la misma respuesta para VS 2012. Ya que las macros ya no son compatibles en 2012, las macro soluciones ya no funcionarán.

Puede descargar una extensión que aparentemente funciona en VS 2010 y 2012 aquí . Puedo confirmar que funciona bien en VS 2012.

El enlace original a la extensión fue dado en esta respuesta.

Existe esta publicación : no estoy seguro si detiene la comstackción en el primer error o el primer proyecto fallido en una solución.

Ctrl-break también lo detendrá manualmente.

¡Ahora si hubiera alguna manera de detenerlo, pasar 10 minutos reconstruyendo intelisense después de que fallara una comstackción!

También puede descargar esta extensión, parece funcionar para todas las versiones de Visual Studio