He escrito un archivo por lotes, que cuando se ejecuta crea una solución de estudio visual. La solución se compone de pocos proyectos de C#. Estoy usando la utilidad MSBuild para esto. ¿Cómo puedo evitar que la compilación siga avanzando cuando hay errores de compilación en cualquiera de los proyectos? Además, ¿cómo puedo obtener los mensajes de error y mostrarlos en el símbolo del sistema?Detener el procesamiento de MSBuild inmediatamente en los errores de compilación
Respuesta
No hay soporte para la parada en primer fracaso en la construcción de una solución de Visual Studio.
Puede solucionar esto mediante la adopción de las siguientes medidas:
- establecer el entorno msbuildemitsolution variable para 1 (
set msbuildemitsolution=1
); - Invoque MSBuild para generar un archivo * .proj a partir de la solución VS de destino;
- En el archivo * .sln.proj generado, cambie
RunEachTargetSeparately="true"
en el destino denominado Build aRunEachTargetSeparately="false"
; - Invoque MSBuild para compilar el archivo * .sln.proj actualizado.
Esta respuesta se basa en Dan Moseley answer to a post on MSDN Forums.
Lo he intentado con msbuild en .NET 4.0. No funciona, no se crea ningún archivo .proj, supervisé la acvitity de msbuild por procmon y también compruebo el archivo de disco. – zhaorufei
Esto aún es compatible con .NET 4.0; Asegúrese de que no haya abierto la ventana del símbolo del sistema al configurar la variable de entorno a través de la configuración del sistema; si ese es el caso, abra una nueva ventana del símbolo del sistema. –
Sería más fácil darle una respuesta si hubiera publicado partes relevantes de su archivo por lotes. Sin embargo, para la segunda parte de la pregunta, aquí es un ejemplo de cómo he resuelto casi la misma cuestión en uno de nuestros scripts de construcción:
msbuild.exe /m /p:Configuration=Release /v:n theSolutionFile.sln >Build.log
if ERRORLEVEL 1 goto :showerror
find "0 Warn" Build.log >nul:
if ERRORLEVEL 1 goto :showerror
goto :EOF
:showerror
echo Build error occurred
exit %ERRORLEVEL%
- 1. ¿Cómo ver inmediatamente los errores de compilación en el árbol de proyectos de IntelliJ Idea?
- 2. detener el archivo de procesamiento de php
- 3. Cómo detener las tareas de copia de MSBuild reintentar automáticamente
- 4. Cómo detener Visual Studio 2010 en el error de compilación
- 5. El uso de MSBuild para actualizar el archivo FILEVERSION en un archivo de recursos de C++ causa errores de compilación
- 6. Cómo puedo detener los errores de validación de CSS que aparecen en la Lista de errores en VS2008
- 7. ¿Cómo excluir proyecto de compilación en MSBUILD?
- 8. ¿Cómo puedo verificar los errores de compilación en python?
- 9. Detener la ejecución de compilación en Jenkins
- 10. msbuild, definiendo símbolos de compilación condicional
- 11. ¿Cómo detener el procesamiento de un JSP temprano?
- 12. Hacer detener valgrind inmediatamente después del primer error
- 13. cmath.h y errores de compilación
- 14. C# cómo tratar los errores de Resharper como errores de compilación en msvs 2010?
- 15. Compilación de destino MSBuild sin dependencias
- 16. Cómo detener inmediatamente la tarea programada en Java.util.Timer clase
- 17. VS2010 - Cómo detener automáticamente la compilación en el primer error de compilación
- 18. Errores de compilación utilizando bfd.h en Linux
- 19. MsBuild copia el archivo después de la compilación
- 20. CXF WS, Interceptor: detener el procesamiento, responder con un error
- 21. ¿Mover elementos de compilación en msbuild a un archivo separado?
- 22. lista de errores de inicialización de compilación
- 23. ¿Cómo detener una compilación en Visual Studio?
- 24. Compilación de errores de Scala OptionBuilder
- 25. caracteres sin escape en la célula Detener procesamiento Fila PHPExcel
- 26. Errores de compilación de OpenCV/Android
- 27. Cómo detener MSBuild _WPPCopyWebApplication limpieza de destino carpeta App_Data
- 28. Hacer una falla en el subdirectorio no detener la compilación
- 29. El código de Protobuf java tiene errores de compilación
- 30. ¿El compilador de C# no informa todos los errores a la vez en cada compilación?
Dupe: http://stackoverflow.com/questions/3297194/stop-msbuild-process-if-a-target-fails –
@RitchMelton no es una tontería ya que se trata de detenerse en el primer fracaso de una solución. –