2009-10-21 22 views
55

Ya sabes, la que da salida a esta =>En Visual Studio, ¿qué hace el comando "Limpiar"?

------ Limpio comenzó: Proyecto: Foo.Bar, Configuración: depurar cualquier CPU ------
==== ====== Limpiar: 1 exitoso, 0 fallido, 0 omitido ==========

¿Qué está limpiando?

+2

posible duplicado de [Visual Studio 2005 Clean Solution] (http://stackoverflow.com/questions/480608/visual-studio-2005-clean-solution) –

Respuesta

58

Los directorios de salida: elimina el código que se creó anteriormente.

No elimina los directorios bin/obj (o los directorios Debug/Release debajo de ellos), solo los archivos .exe, .dll, etc. reales. Desafortunadamente, esto hace que sea menos útil para mi uso habitual de limpiar directorios de salida: cuando quiero comprimir el código fuente. Como la acción Clean no hace esto, normalmente elimino los directorios bin y obj directamente.

+1

Un buen punto sobre no eliminar completamente los directorios. Es sobre todo discutible para mí porque Subversion tiene el comando de exportación que funciona bien (al menos si no ha agregado los archivos bin, obj, * .suo, * .user, etc. al repositorio). Pero, sí, sería bueno ver esa característica. –

+2

Es interesante observar que en VS 2013, el comando Limpiar solución solo afectará a la configuración actualmente activa (por ejemplo, si su solución está configurada en Depuración, Clean Solution no hará nada con los archivos en la carpeta Release). –

+0

Hay una extensión llamada CleanProject, que le permite realizar una limpieza completa (eliminar bin, obj, ...): https://visualstudiogallery.msdn.microsoft.com/bca632e0-3948-43c8-b337-da47275717b6 – Robin

14

Pasa a través de sus directorios de salida y borra cualquier archivo relacionado con compilación en ellos.

creo que también se puede configurar esto de ir a las propiedades del proyecto en

configuración Propiedades -> General, en "Extensiones Eliminar en limpio"

+0

sry, Jon fue el primero. :) –

+0

np, necesito dedos más rápidos = P – Joseph

+0

Estoy bastante seguro de que sabía esto. Simplemente no he encontrado un buen caso de uso para él y, por lo tanto, lo olvidé. No pude entender cómo preguntarlo correctamente a google. –

3

elimina todos los archivos asociados con la acumulación, la producción directorios

1

Las personas usan un 'clean' para forzar una reconstrucción completa desde la fuente. Su compilador no reconstruye todos los archivos cada vez si no ha cambiado.

+1

En primer lugar para aclarar sobre esto, una limpieza no hace ningún edificio. Una limpieza garantiza una compilación completa si realiza una compilación posterior utilizando la opción 'compilar' en VS. Si 'reconstruye' en Visual Studio, todo se reconstruirá, ya que de todos modos se limpia primero. Personalmente siempre reconstruyo, para evitar posibles problemas. –

26

¿Por qué no buscar por ti mismo? Abre Microsoft.Common.Targets (que se encuentra en% windir% \ Microsoft.NET) y verá una sección de este modo:

<!-- 
============================================================ 
            Clean 

Delete all intermediate and final build outputs. 
============================================================ 
--> 
<PropertyGroup> 
    <CleanDependsOn> 
     BeforeClean; 
     CleanReferencedProjects; 
     UnmanagedUnregistration; 
     CoreClean; 
     CleanPublishFolder; 
     AfterClean 
    </CleanDependsOn> 
</PropertyGroup> 
<Target 
    Name="Clean" 
    Condition=" '$(_InvalidConfigurationWarning)' != 'true' " 
    DependsOnTargets="$(CleanDependsOn)" /> 

Sigue leyendo para ver exactamente lo que cada uno de esos objetivos parciales hace. (Algunos, por supuesto, son solo stubs para que el usuario los anule).

Personalmente, me gusta ver qué chanchullos está haciendo mi IDE de fantasía a mis espaldas. Con este fin, recomendaría aumentar la cantidad de información escrita en la ventana de Salida. Herramientas -> Opciones -> Proyectos & Soluciones -> Crear & Ejecutar -> MSBuild verbosity -> cambiar de "Mínimo" a "Normal" o "Detallado".

¡Pruebe nuevamente su operación de limpieza y mire la salida ahora! Correlacionar lo que ves con los archivos * .targets es una buena manera de comenzar a aprender MSBuild.

+0

Cosas agradables. A pesar de eso, estoy más interesado en cómo funciona NAnt. –

+5

+1 para MSBuild Verbosity. :) –

Cuestiones relacionadas