Quelle est la différence entre Build Solution, Rebuild Solution et Clean Solution dans Visual Studio?
Quel est le moment approprié pour utiliser chacun d'eux?
Quelle est la différence entre Build Solution, Rebuild Solution et Clean Solution dans Visual Studio?
Quel est le moment approprié pour utiliser chacun d'eux?
Réponses:
(Les liens sont vers les commutateurs de ligne de commande devenv.exe , mais ils font la même chose que les éléments de menu.)
.gitignore
fichier décent . Mais selon la réponse, Clean ne fait pas toujours un travail particulièrement approfondi d'après mon expérience.
Solution de compilation: compile les fichiers de code (DLL et EXE) qui sont modifiés.
Reconstruire: supprime tous les fichiers compilés et les recompile à nouveau, que le code ait changé ou non.
Solution propre: supprime tous les fichiers compilés (fichier DLL et EXE).
Vous pouvez voir cette vidéo YouTube ( Visual Studio Build vs Rebuild vs. Clean (questions d'entrevue C # avec réponses) ) où j'ai démontré les différences et ci-dessous sont des représentations visuelles qui vous aideront à analyser la même chose plus en détail.
La différence entre Reconstruire et (Nettoyer + Construire), car il semble également y avoir une certaine confusion à ce sujet:
La différence réside dans la façon dont la séquence de génération et de nettoyage se produit pour chaque projet. Supposons que votre solution comporte deux projets, «proj1» et «proj2». Si vous faites une reconstruction, il faudra «proj1», nettoyez (supprimez) les fichiers compilés pour «proj1» et compilez-le. Après cela, il faudra le deuxième projet «proj2», nettoyer les fichiers compilés pour «proj2» et compiler «proj2».
Mais si vous effectuez un «nettoyage» et une construction », il supprimera d'abord tous les fichiers compilés pour« proj1 »et« proj2 », puis il créera« proj1 »d'abord suivi de« proj2 ».
Tiré de ce lien :
Générer signifie compiler et lier uniquement les fichiers source qui ont changé depuis la dernière génération, tandis que Reconstruire signifie compiler et lier tous les fichiers source, qu'ils aient changé ou non. La construction est la chose normale à faire et est plus rapide. Parfois, les versions des composants cibles du projet peuvent se désynchroniser et une reconstruction est nécessaire pour réussir la génération. En pratique, vous n'avez jamais besoin de nettoyer.
Build Solution - Génère tous les assemblys qui ont modifié des fichiers. Si un assemblage n'a pas de modifications, il ne sera pas reconstruit. Ne supprimera également aucun fichier intermédiaire.
Utilisé le plus souvent.
Solution de reconstruction - Reconstruit tous les assemblys indépendamment des modifications, mais laisse les fichiers intermédiaires.
Utilisé lorsque vous remarquez que Visual Studio n'a pas incorporé vos modifications dans le dernier assembly. Parfois, Visual Studio fait des erreurs.
Clean Solution - Supprimez tous les fichiers intermédiaires.
Utilisé lorsque tout le reste échoue et que vous devez tout nettoyer et recommencer à zéro.
Je pense juste à Rebuild comme exécutant le Clean en premier, suivi de Build. Peut-être que je me trompe ... des commentaires?
file reference
au lieu d'un project reference
afin que l'ordre de construction du projet ne reconnaisse pas qu'il devait construire un certain projet avant un autre, et l'assembly n'existait pas là où il devrait avoir pendant la construire?
Build Solution - Génère tous les assemblys qui ont modifié des fichiers. Si un assemblage n'a pas de modifications, il ne sera pas reconstruit. Ne supprimera également aucun fichier intermédiaire.
La reconstruction de la solution nettoiera puis créera la solution à partir de zéro, ignorant tout ce qui a été fait avant
Clean Solution supprimera tous les fichiers compilés (ie, EXE et DLL) du répertoire bin / obj.
Build solution créera tous les projets de la solution qui ont changé. Reconstruire construit tous les projets, quelle que soit la solution, la solution propre supprime tous les fichiers temporaires, garantissant que la prochaine génération est terminée.
Build Solution - Build solution construira votre application avec la construction du nombre de projets qui ont un changement de fichier. Et il n'efface aucun fichier binaire existant et remplace simplement les assemblys mis à jour dans le dossier bin ou obj.
Solution de reconstruction - La solution de reconstruction construira votre application entière avec la construction de tous les projets disponibles dans votre solution avec leur nettoyage. Avant de le construire, il efface tous les fichiers binaires du dossier bin et obj.
Solution propre - La solution propre efface simplement tous les fichiers binaires du dossier bin et obj.
Créer une solution
Cela effectuera une construction incrémentielle. En d'autres termes, il ne construira que des fichiers de code qui ont changé. S'ils n'ont pas changé, ces fichiers ne seront pas touchés.
Reconstruire la solution
Cela supprimera tous les fichiers actuellement compilés (ie, exe et DLL) et construira tout à partir de zéro, qu'il y ait ou non un changement de code dans le fichier.
Menu de solution propre
Ce menu supprimera tous les fichiers compilés (c'est-à-dire les EXE et DLL) du répertoire bin / obj.
Reconstruire = nettoyer + construire
La principale chose que je pense que les gens oublient est que la construction et le nettoyage sont deux tâches qui sont effectuées en fonction de la connaissance que Visual Studio a de votre projet / solution. Je vois beaucoup de gens se plaindre que Clean ne fonctionne pas ou laisse des fichiers restants ou n'est pas digne de confiance, alors qu'en fait, les raisons pour lesquelles vous dites qu'il n'est pas digne de confiance le rendent en fait plus digne de confiance.
Clean ne supprimera (nettoiera) que les fichiers et / ou répertoires que Visual Studio ou le compilateur eux-mêmes ont en fait créés. Si vous copiez vos propres fichiers ou que les structures de fichiers / dossiers sont créées à partir d'un outil ou d'une source externe, Visual Studio ne "sait pas qu'elles existent" et ne doit donc pas les toucher.
Pouvez-vous imaginer si l'opération de nettoyage a essentiellement effectué un "del *. *"? Cela pourrait être catastrophique.
Build effectue une compilation sur les projets modifiés ou nécessaires.
Reconstruire effectue une compilation indépendamment du changement ou de ce qui est nécessaire.
Clean supprime les fichiers / dossiers qu'il a créés dans le passé, mais laisse tout ce dont il n'avait rien à faire, au départ.
J'espère que cela élabore un peu et aide.
J'ai aa solution blanc BuildRebuildClean
et trois bibliothèque de classes Models
, Repository
, Notification
.
J'utilise Models
et Repository
en Notification
bibliothèque de classe.
Alors:
Models
projet de bibliothèque, alors CONSTRUISEZ la solution. Dans la capture d'écran ci-dessous, reportez-vous à l'horodatage de DLL, EXE est mis à jour dans Models
et Notification
bibliothèque.BuildRebuildClean
. Il supprime tous les assemblys, EXE et fichiers référencés à recompiler.Tout ce que je sais, c'est qu'un nettoyage ne fait pas ce que "nettoyer" utilisé auparavant - si je nettoie une solution, je m'attendrais à ce qu'elle supprime les fichiers / dossiers obj et bin de telle sorte qu'elle se construit comme si c'était une nouvelle vérification de la source. Dans mon expérience, bien que je trouve souvent des moments où un nettoyage et une construction ou une reconstruction génèrent toujours des erreurs étranges sur la source qui est connue pour être compilée et ce qui est requis est une suppression manuelle des dossiers bin / obj, puis il se construira.
Build solution crée uniquement les projets qui ont changé dans la solution et n'affecte pas les assemblys qui n'ont pas changé,
ReBuild nettoie d'abord tous les assemblys de la solution, puis crée la solution entière indépendamment des modifications apportées.
Nettoyez, nettoie simplement la solution.
Il s'agit uniquement de l'option "Build Solution".
J'en ai eu marre de l'incapacité de Visual Studio à vraiment nettoyer les solutions et j'ai écrit ce petit outil qui le fera pour vous.
Fermez d'abord votre solution dans VS et faites glisser son dossier depuis l'Explorateur Windows dans cette application ou dans son icône. Selon le paramètre en bas de sa fenêtre, il peut également supprimer des éléments supplémentaires, qui vous aideront si vous essayez de télécharger manuellement votre solution sur GitHub ou de la partager avec quelqu'un d'autre:
En un mot, il placera tous les dossiers "Debug", Intellisense et autres caches qui peuvent être reconstruits par VS dans la corbeille pour vous.