¿Cuál es la diferencia entre sólo un Reconstruir y haciendo un Clean + Build en Visual Studio 2008? ¿Es Limpiar + Generar diferente entonces haciendo Limpiar + Reconstruir?Diferencia entre Reconstruir y limpio + estructura en Visual Studio
Respuesta
Reconstruir = Clean + Construir
detalles notables:
Para una solución multi-proyecto, "reconstruir solución" realiza una "limpia" seguido de un "construir" para cada proyecto (posiblemente en paralelo). Mientras que una "solución limpia" seguida de una "solución de compilación" primero limpia todos los proyectos (posiblemente en paralelo) y luego construye todos los proyectos (posiblemente en paralelo). Esta diferencia en la secuencia de eventos puede volverse significativa cuando entran en juego dependencias entre proyectos.
Las tres acciones corresponden a los objetivos de MSBuild. Entonces, un proyecto puede anular la acción Reconstruir para hacer algo completamente diferente.
Así que estás diciendo que * Rebuild * es ** exactamente ** lo mismo que * Clean * seguido de * Build *? Eso es lo que pensé, pero no estaba seguro. –
Excepto Reconstruir limpia y reconstruye cada proyecto uno por uno. Clean + Build los limpia y los construye todos. Hace la diferencia sobre todo si hace clic por accidente :) – Eugene
Excepto por la falta de garantía de que son los mismos. Ver la respuesta de JaredPar a continuación, que combinada con Earl's es la imagen completa. Porque Rebuild hace cada proyecto por turno, puede tener un "caso de esquina" cuando se descompone su información de dependencia y obtiene un proyecto de compilación B fuera de servicio utilizando el antiguo proyecto A, luego reconstruye A, luego reconstruye C. etc. Una solución completa Clean seguida de una construcción de solución completa detectará esta situación, mientras que una reconstrucción no lo hará. De modo que cuanto más paranoico y cansado esté, más debería favorecer a Clean y Build. –
Earl tiene en cuenta que el 99% del tiempo Rebuild = Clean + Build.
Pero no se garantiza que sean iguales. Las 3 acciones (reconstruir, construir, limpiar) representan diferentes objetivos de MSBuild. Cada uno de los cuales puede ser reemplazado por cualquier archivo de proyecto para realizar acciones personalizadas. Por lo tanto, es completamente posible que alguien anule la reconstrucción para realizar varias acciones antes de iniciar una compilación limpia + (o eliminarlas por completo).
Mucho caso de esquina pero lo señala debido a discusiones de comentarios.
Si agrega acciones de compilación que muevan los archivos .dll a una nueva ubicación, puede obtener resultados de compilación 'malos' simplemente haciendo una reconstrucción. Si mezclas un proyecto de vb.net y C# las cosas empeoran, los diseñadores de formularios rotos y no funcionan. – CodingBarfield
+1 Tenga en cuenta también que el comportamiento de Rebuild no parece ser uniforme en todos los idiomas con respecto a las dependencias: http://stackoverflow.com/questions/12163080/vs2010-lnk1181-when-rebuilding-project-with-dependency – lesscode
De http://www.cs.tufts.edu/r/graphics/resources/vs_getting_started/vs_getting_started.htm, (justo en el Google):
Construir significa compilación y enlace que sólo los archivos de origen que han cambiado desde la última configuración, y que reconstruir medios de compilación y enlace todos los archivos de origen, independientemente de si han cambiado o no . La compilación es lo normal y es más rápido. En ocasiones, las versiones de los componentes del objetivo del proyecto pueden desincronizarse y la reconstrucción es necesaria para que la compilación tenga éxito. En la práctica, nunca necesitas Limpiar.
Build or Rebuild Solution construye o reconstruye todos los proyectos en su solución, mientras que Build o Rebuild crea o reconstruye el proyecto de inicio, "hola" en la captura de pantalla anterior. Para configurar el proyecto de inicio, haga clic con el botón derecho en el nombre del proyecto deseado en la pestaña Explorador de soluciones y seleccione Establecer como proyecto de inicio. El nombre del proyecto ahora aparece en negrita. Dado que las soluciones de tareas generalmente tienen solo un proyecto, Build o Rebuild Solution es efectivamente lo mismo que Build o Rebuild.
Compilar solo compila el archivo fuente que se está editando actualmente. Útil para comprobar rápidamente si hay errores en el resto de los archivos de origen en un estado incompleto que impida una compilación exitosa de todo el proyecto. Ctrl-F7 es la tecla de acceso directo para compilar.
1 Por proyecto, Reconstruir proyecto = (Limpiar proyecto + Generar proyecto).
2 Por solución, reconstruir Sln = proyecto foreach (proyecto Limpiar + proyecto de compilación)!= Clean Sln + Build Sln
Supongamos que tiene un Sln, contiene proj1, proj2 y proj3.
Reconstruir Sln = (proj1 Clean -> Construir Proj1) + (Proj2 Clean -> Construir Proj2) + (proj3 Clean -> Construir Proj3)
Limpio Sln + Construir Sln = (proj1 Clean + Proj2 Clean + proj3 limpia) -> (Build proj1 + estructura Proj2 + estructura proj3)
-> significa en serie, + significa concurrente
así que hay una oportunidad cuando se envía una gran cantidad de cambios en el código, mientras que no se configuró las dependencias del proyecto correctamente, Rebuild Sln causaría que algunos de ustedes crearan un enlace proj a una libra obsoleta porque no se garantiza que todas las compilaciones sean después de todas las limpiezas. (En este caso, Cl ean Sln + Construir Sln dará un error de enlace, y hacerle saber que, inmediatamente, en vez de darle una aplicación con un comportamiento extraño)
This one es la respuesta más exacta, ya que explica por qué a veces no pude reconstruir, pero pude limpiar + compilar. –
De this blog post que el autor vincula como a comment on this question:
En realidad no! !! ellos no son iguales
La diferencia está en la secuencia en que los proyectos se limpian y se construyen. Deje decir que tenemos dos proyectos en una solución. Limpiar y luego generar realizar limpieza en ambos proyectos y luego la construcción se realizará individualmente mientras que en el proyecto de reconstrucción A se obtendrá, se limpiará y luego se construirá después de que el proyecto B estará limpio y luego se construirá y así sucesivamente.
- 1. ¿Cómo reconstruir Visual Studio Toolbox?
- 2. ¿Cuál es la diferencia entre // y /// en Visual Studio?
- 3. ¿Cuál es la diferencia entre Microsoft WebMatrix y Visual Studio?
- 4. Diferencia entre -> y. en una estructura?
- 5. ¿Cuál es la diferencia entre una "compilación" y una "reconstrucción" en Visual Studio?
- 6. Force Visual Studio Reconstruir en recursos incrustados modificados
- 7. Razones para reconstruir proyectos C# en Visual Studio
- 8. Forzar visual studio para siempre 'reconstruir todo' cuando se depura
- 9. Diferencia entre crear contenido de acción y 'Copiar en el directorio de salida' en Visual Studio
- 10. Diferencia entre sqrtf y sqrtf
- 11. ¿Cuál es la diferencia entre Build Solution y Batch Build en Visual Studio 2008?
- 12. ¿Cuál es la diferencia entre "Detener depuración" y "Terminar todo" en Visual Studio?
- 13. Diferencia entre el evento KeyDown, el evento KeyPress y el evento KeyUp en Visual Studio
- 14. ¿Diferencia entre Addin y VSPackage en la extensibilidad de Visual Studio?
- 15. ¿Cuál es la diferencia entre los modos Release y Debug en Visual Studio?
- 16. Diferencias entre Visual Studio (.sln) construir corredor y MSBuild
- 17. ¿hay alguna diferencia entre una estructura en C++ y una estructura en C#?
- 18. Diferencia de estructura entre lisp común y emacs lisp
- 19. ¿Cuál es la diferencia entre declarar y definir una estructura?
- 20. ¿Diferencia entre Visual Studio al iniciar un ejecutable y ejecutarlo usted mismo?
- 21. C# XNA Visual Studio: ¿Diferencia entre los modos "liberar" y "eliminar errores"?
- 22. ¿Cuál es la diferencia entre los archivos .LIB y .OBJ? (Visual Studio C++)
- 23. ¿Cuál es la diferencia entre Visual Studio Package y VSIX Project types?
- 24. Diferencia de archivo de proyecto de Visual Studio entre PostBuildEvent y el objetivo AfterBuild?
- 25. "Paquete de integración de Visual Studio" frente a "Complemento de Visual Studio": ¿cuál es la diferencia?
- 26. ¿Hay alguna diferencia entre MsgBox y MessageBox.Show?
- 27. cmake y visual studio
- 28. Visual Studio debug iterators
- 29. GitHub y Visual Studio
- 30. Evento Visual Studio 2008 Post Build: solo se ejecuta en Reconstruir
[Aquí hay una buena publicación con detalles] (http://conceptf1.blogspot.com/2013/11/visual-studio-clean-build-and-rebuild-solution.html) –