web-dev-qa-db-fra.com

Dans Visual Studio, que fait la commande "Nettoyer"?

Vous savez, celui qui sort ceci =>

------ Démarrage du nettoyage: projet: Foo.Bar, configuration: débogage de n'importe quel CPU ------
========== Nettoyer: 1 réussi, 0 échoué, 0 ignoré ==========

Qu'est-ce que c'est le nettoyage?

64
Arnis Lapsa

Les répertoires de sortie - il supprime le code qu'il a précédemment construit.

Il ne supprime pas les répertoires bin/obj eux-mêmes (ou les répertoires Debug/Release en dessous), juste les fichiers .exe, .dll, etc. réels. Malheureusement, cela le rend moins utile pour mon utilisation habituelle du nettoyage des répertoires de sortie: lorsque je veux compresser le code source. Comme l'action Clean ne fait pas cela, je supprime généralement directement les répertoires bin et obj.

70
Jon Skeet

Pourquoi ne pas chercher par vous-même? Ouvrez Microsoft.Common.Targets (trouvé sous% windir%\Microsoft.NET) et vous verrez une section comme ceci:

<!--
============================================================
                                    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)" />

Continuez à lire pour voir exactement ce que fait chacun de ces sous-objectifs. (Certains, bien sûr, ne sont que des talons que l'utilisateur doit remplacer).

Personnellement, j'aime voir quelles manigances mes pantalons fantaisie IDE est derrière mon dos. À cette fin, je recommanderais d'augmenter la quantité d'informations écrites dans la fenêtre de sortie. Outils - > Options -> Projets et solutions -> Build & Run -> verbosité MSBuild -> passer de "Minimal" à "Normal" ou "Detail".

Essayez à nouveau votre opération Clean et regardez la sortie maintenant! La corrélation de ce que vous voyez avec les fichiers * .targets est un bon moyen de commencer à apprendre MSBuild.

28
Richard Berg

Il passe par vos répertoires de sortie et supprime tous les fichiers liés à la construction.

Je pense que vous pouvez également configurer cela en allant dans les propriétés du projet dans

Propriétés de configuration -> Général, sous "Extensions à supprimer lors du nettoyage"

14
Joseph

supprime tous les fichiers associés à la génération, répertoires de sortie

3
vehomzzz

Les gens utilisent un "nettoyage" pour forcer une reconstruction complète à partir de la source. Votre compilateur ne reconstruit pas chaque fichier à chaque fois s'il n'a pas changé.

1
Adam Casey