Différence entre reconstruire et nettoyer + construire dans Visual Studio

Quelle est la différence entre juste une reconstruction et faire un Clean + Build dans Visual Studio 2008? Est-ce que Clean + Build est différent de Clean + Rebuild ?

Reconstruire = Nettoyer + Construire

Détails notables:

  1. Pour une solution multi-projets, “reconstruire la solution” effectue un “nettoyage” suivi d’un “build” pour chaque projet (éventuellement en parallèle). Alors qu’une “solution propre” suivie d’une “solution de construction” nettoie d’abord tous les projets (éventuellement en parallèle), puis construit tous les projets (éventuellement en parallèle). Cette différence dans la séquence des événements peut devenir importante lorsque des dépendances entre projets interviennent.

  2. Les trois actions correspondent aux cibles MSBuild. Ainsi, un projet peut remplacer l’action Reconstruire pour faire quelque chose de complètement différent.

Earl a raison que 99% du temps Rebuild = Clean + Build.

Mais ils ne sont pas garantis pour être les mêmes. Les 3 actions (reconstruction, construction, nettoyage) représentent différentes cibles MSBuild. Chacun d’entre eux peut être remplacé par un fichier de projet pour effectuer des actions personnalisées. Il est donc tout à fait possible pour quelqu’un de remplacer la reconstruction pour effectuer plusieurs actions avant d’initier une construction propre + (ou de les supprimer complètement).

Une affaire de coin mais le signaler en raison de commentaires.

1 Par projet, Rebuild project = (Projet propre + Projet de construction).

2 par solution, Reconstruire Sln = projet foreach (projet propre + projet de construction)! = Clean Sln + Build Sln

Disons que vous avez un Sln, contient proj1, proj2 et proj3.

Reconstruire Sln = (Nettoyer proj1 -> Construire Proj1) + (Nettoyer proj2 -> Construire Proj2) + (Nettoyer proj3 -> Construire Proj3)

Clean Sln + Build Sln = (Clean proj1 + Clean proj2 + Clean proj3) -> (Build proj1 + Build proj2 + Build proj3)

-> signifie série, + signifie concurrente

Il y a donc une chance que lorsque vous soumettez beaucoup de modifications de code alors que vous ne configurez pas correctement les dépendances du projet, la reconstruction de Sln entraînerait le lien obsolète de certains proj vers une librairie périmée. Dans ce cas, Clean Sln + Build Sln donnera une erreur de lien et vous le fera savoir immédiatement, au lieu de vous donner une application avec un comportement étrange)

De http://www.cs.tufts.edu/r/graphics/resources/vs_getting_started/vs_getting_started.htm , (juste googlé):

Générer signifie comstackr et lier uniquement les fichiers source qui ont été modifiés depuis la dernière version, tandis que Rebuild signifie comstackr et lier tous les fichiers sources, qu’ils aient ou non changé. La construction est la chose normale à faire et est plus rapide. Parfois, les versions des composants cibles du projet peuvent être désynchronisées et la reconstruction est nécessaire pour assurer la réussite de la génération. En pratique, vous n’avez jamais besoin de nettoyer.

Build ou Rebuild Solution crée ou reconstruit tous les projets dans votre solution, tandis que Build ou Rebuild crée ou reconstruit le projet StartUp, “hello” dans la capture d’écran ci-dessus. Pour définir le projet de démarrage, cliquez avec le bouton droit sur le nom du projet souhaité dans l’onglet Explorateur de solutions et sélectionnez Définir comme projet de démarrage. Le nom du projet apparaît maintenant en gras. Comme les solutions de devoirs ont généralement un seul projet, Build ou Rebuild Solution est effectivement identique à Build ou Rebuild.

Comstackr comstack simplement le fichier source en cours d’édition. Utile pour vérifier rapidement les erreurs lorsque le rest de vos fichiers source est dans un état incomplet qui empêcherait une génération complète du projet. Ctrl-F7 est la touche de raccourci pour la compilation.

De cet article de blog que l’auteur a lié en tant que commentaire sur cette question :

En fait non!!! ils ne sont pas égaux.

La différence réside dans la séquence que les projets deviennent propres et constructifs. Disons que nous avons deux projets dans une solution. Nettoyer, puis construire, effectuera un nettoyage propre aux deux projets, puis la génération se produira individuellement lors de la reconstruction. A, le projet sera nettoyé, puis compilé après ce projet B sera propre, puis comstackra et ainsi de suite.