Pregunta ¿Diferencia entre Build Solution, Rebuild Solution y Clean Solution en Visual Studio?


¿Cuál es la diferencia entre Build Solution, Rebuild Solution y Clean Solution en Visual Studio?

¿Cuándo es el momento apropiado para usar cada uno de estos?


897
2018-06-22 18:17


origen


Respuestas:


  • Solución de compilación realizará una compilación incremental: si no lo hace pensar necesita reconstruir un proyecto, no lo hará. También puede usar fragmentos parcialmente construidos del proyecto si no han cambiado (no sé hasta dónde lleva esto)
  • Reconstruir la solución limpiará y luego construirá la solución desde cero, haciendo caso omiso de todo lo que haya hecho antes.
  • Solución limpia eliminará los artefactos de compilación de la compilación anterior. Si hay otros archivos en los directorios de destino de compilación (bin y obj), es posible que no se eliminen, pero sí los artefactos de compilación reales. He visto que el comportamiento varía, a veces lo elimino de manera bastante exhaustiva y otras veces no, pero le daré a VS el beneficio de la duda por el momento :)

(Los enlaces son a la devenv.exe interruptores de línea de comando, pero hacen lo mismo que los elementos del menú).


720
2018-06-22 18:21



Solución de compilación: compila los archivos de código (DLL y EXE) que se modifican.

Reconstruir: elimina todos los archivos compilados y los compila de nuevo, independientemente de si el código ha cambiado o no.

Solución limpia: elimina todos los archivos compilados (archivo DLL y EXE).

Puedes ver este video de YouTube (Visual Studio Build vs. Rebuild vs. Clean (Preguntas de la entrevista C # con respuestas)) donde he demostrado las diferencias y a continuación hay representaciones visuales que te ayudarán a analizarlas con más detalle.

Build vs Rebuild

La diferencia entre Rebuild vs. (Clean + Build), porque parece haber algo de confusión alrededor de esto también:

La diferencia es la forma en que la secuencia de creación y limpieza ocurre para cada proyecto. Supongamos que su solución tiene dos proyectos, "proj1" y "proj2". Si haces una reconstrucción, tomará "proj1", limpiará (eliminará) los archivos compilados para "proj1" y lo compilará. Después de eso, tomará el segundo proyecto "proj2", limpiará los archivos compilados para "proj2" y compilará "proj2".

Pero si hace una "limpieza" y compila ", primero eliminará todos los archivos compilados para" proj1 "y" proj2 "y luego compilará" proj1 "primero seguido de" proj2 ".

Rebuild Vs Clean


355
2017-07-22 06:24



Tomado de este enlace:

Build significa compilar y vincular solo los archivos fuente que han cambiado   desde la última compilación, mientras Rebuild   significa compilar y vincular todas las fuentes   archivos independientemente de si   cambiado o no. Build es lo normal   cosa que hacer y es más rápido. A veces   las versiones del objetivo del proyecto   componentes pueden salir de la sincronización y   la reconstrucción es necesaria para hacer la construcción   exitoso. En la práctica, nunca   Necesito limpiar.


135
2018-06-22 18:19



Construir solución - Crea ensamblajes que tienen archivos cambiados. Si un ensamblaje no tiene cambios, no será reconstruido. Además, no eliminará ningún archivo intermedio.

Usado más comúnmente.

Reconstruir la solución - Reconstruye todos los ensamblajes independientemente de los cambios, pero deja archivos intermedios.

Se usa cuando observa que Visual Studio no incorporó sus cambios en el último ensamblaje. Algunas veces Visual Studio comete errores.

Solución limpia - Eliminar todos los archivos intermedios y reconstruir todos los ensamblajes independientemente de los cambios

Se usa cuando todo lo demás falla y debe limpiar todo y comenzar de nuevo.


27
2018-06-22 18:20



Construir solución - Crea ensamblajes que tienen archivos cambiados. Si un ensamblaje no tiene cambios, no será reconstruido. Además, no eliminará ningún archivo intermedio.

Reconstruir la solución limpiará y luego construirá la solución desde cero, haciendo caso omiso de todo lo que haya hecho antes

Solución limpia eliminará todos los archivos compilados (es decir, EXE y DLL) del directorio bin / obj.


13
2017-09-21 16:43



Solo pienso en Rebuild como realizando primero Clean seguido por Build. Quizás estoy equivocado ... ¿comentarios?


12
2018-06-22 18:25



Construir solución - La solución de compilación creará su aplicación para generar la cantidad de proyectos que están teniendo cambios de archivo. Y no borra ninguno de los archivos binarios existentes y simplemente reemplaza los ensamblados actualizados en la carpeta bin u obj.

Reconstruir la solución - La solución Rebuild generará toda tu aplicación con la construcción de todos los proyectos disponibles en tu solución para su limpieza. Antes de compilar, borra todos los archivos binarios de la carpeta bin y obj.

Solución limpia - La solución limpia simplemente borra todos los archivos binarios de la carpeta bin y obj.


7
2018-06-13 12:53



La solución Build construirá cualquier proyecto en la solución que haya cambiado. Rebuild construye todos los proyectos sin importar qué, la solución limpia elimina todos los archivos temporales asegurando que la siguiente compilación esté completa.


6
2018-06-22 18:20



Solución de compilación

Esto realizará una construcción incremental. En otras palabras, solo creará archivos de código que hayan cambiado. Si no han cambiado, esos archivos no se tocarán.

Reconstruir la solución

Esto eliminará todos los archivos actualmente compilados (es decir, exe y DLL) y construirá todo desde cero, independientemente de si hay un cambio de código en el archivo o no.

Menú de solución limpia

Este menú eliminará todos los archivos compilados (es decir, EXE y DLL) del directorio bin / obj.

Reconstruir = Limpiar + Construir


3
2017-11-09 09:28



La solución de compilación solo crea aquellos proyectos que han cambiado en la solución, y no afecta a ensamblajes que no han cambiado,

ReBuild primero limpia, todos los ensamblajes de la solución y luego construye una solución completa, independientemente de los cambios realizados.

Limpio, simplemente limpia la solución.


1
2018-06-19 17:31



La única cosa importante que creo que las personas están dejando de lado es que Build and Clean son tareas que se realizan en base al conocimiento de Visual Studio de su Proyecto / Solución. Veo mucho quejándome de que Clean no funciona o deja archivos sobrantes o no es confiable, cuando de hecho, las razones por las que dices que no es confiable realmente lo hacen más confiable.

Clean solo eliminará (limpiará) los archivos y / o directorios que Visual Studio o el compilador hayan creado. Si copia sus propios archivos o las estructuras de archivos / carpetas se crean a partir de una herramienta o fuente externa, entonces Visual Studio no "sabe que existen" y, por lo tanto, no debe tocarlos.

¿Te imaginas si la operación de Limpieza básicamente realizó un "del *. *"? Esto podría ser catastrófico.

Construir realiza una compilación en proyectos cambiados o necesarios.

Reconstruir realiza una compilación independientemente del cambio o lo que sea necesario.

Limpiar elimina los archivos / carpetas que ha creado en el pasado, pero deja todo lo que no tenía nada que ver, inicialmente.

Espero que esto se desarrolle un poco y ayude.


1
2017-07-23 18:05