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?
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.
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.
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"
supprime tous les fichiers associés à la génération, répertoires de sortie
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é.