¿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?

  • La solución de comstackción realizará una comstackción incremental: si no cree que 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)
  • La solución Rebuild limpiará y luego construirá la solución desde cero, haciendo caso omiso de todo lo que haya hecho antes. La diferencia entre esto y “Limpio, seguido de comstackción” es que Rebuild limpiará y construirá cada proyecto, uno a la vez, en lugar de limpiar todo y luego construir todo.
  • La solución limpia eliminará los artefactos de comstackción de la comstackción anterior. Si hay otros archivos en los directorios de destino de comstackción (bin y obj), es posible que no se eliminen, pero sí los artefactos de comstackció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 los modificadores de línea de comandos devenv.exe , pero hacen lo mismo que los elementos del menú).

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

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

Solución limpia: elimina todos los archivos comstackdos (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 comstackdos para “proj1” y lo comstackrá. Después de eso, tomará el segundo proyecto “proj2”, limpiará los archivos comstackdos para “proj2” y comstackrá “proj2”.

Pero si hace una “limpieza” y comstack “, primero eliminará todos los archivos comstackdos para” proj1 “y” proj2 “y luego comstackrá” proj1 “primero seguido de” proj2 “.

Reconstruir Vs Clean

Tomado de este enlace :

Build significa comstackr y vincular solo los archivos fuente que han cambiado desde la última comstackción, mientras que Rebuild significa comstackr y vincular todos los archivos fuente independientemente de si han cambiado o no. La comstackción es lo normal y es más rápido. En ocasiones, las versiones de los componentes del objective del proyecto pueden desincronizarse y la reconstrucción es necesaria para que la comstackción tenga éxito. En la práctica, nunca necesitas Limpiar.

Solución de comstackció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.

Rebuild Solution – Reconstruye todos los ensamblados 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 : elimine todos los archivos intermedios y reconstruya todos los ensamblados independientemente de los cambios

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

Solución de comstackción: crea ensamblajes que tienen archivos cambiados. Si un ensamblaje no tiene cambios, no será reconstruido. Además, no eliminará ningún archivo intermedio.

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

Clean Solution eliminará todos los archivos comstackdos (es decir, EXE y DLL) del directorio bin / obj.

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

Solución de comstackción: la solución de comstackción creará su aplicación para generar la cantidad de proyectos que tienen cambios de archivo. Y no borra ninguno de los archivos binarios existentes y simplemente reemplaza los ensamblados actualizados en la carpeta bin u obj.

Rebuild Solution – Rebuild Solution construirá toda su aplicación con la construcción de todos los proyectos disponibles en su solución para su limpieza. Antes de comstackr, 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.

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 comstackción esté completa.

Solución de comstackció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 comstackdos (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 comstackdos (es decir, EXE y DLL) del directorio bin / obj.

Reconstruir = Limpiar + Construir

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 comstackdor 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.

Build realiza una comstackción en proyectos modificados o necesarios.

Rebuild realiza una comstackción independientemente del cambio o de 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.

La solución de comstackció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.