2008-10-24 7 views

Répondre

62

Le dossier "obj" est utilisé pour stocker les fichiers objets temporaires et autres fichiers utilisés afin de créer le fichier binaire final pendant le processus de compilation.

Le dossier "bin" est le dossier de sortie des binaires complets (assemblages).

43

En plus de splattne's answer, je crois que la raison pour l'avoir (et pas le nettoyage après la construction) est de soutenir la compilation incrémentale. Si vous avez déjà compilé 100 classes et que vous en modifiez une, il est beaucoup plus efficace de simplement recompiler le code pour la classe modifiée et de réassembler l'exe/dll à partir d'un mélange du nouveau et du vieux code.

Bien sûr, la compilation incrémentale est beaucoup plus complexe que cela: elle doit garder une trace de tout pour pouvoir détecter quand elle doit recompiler une classe même si cette classe n'a pas changé. (Par exemple, si une nouvelle surcharge devient disponible dans une classe - certains appelants peuvent avoir besoin d'être recompilés.)

+0

Quelle est la source pour les fichiers 'obj '? Je demande parce que j'ai un problème avec un projet Azure Cloud Service qui empaquette la mauvaise version de 'System.Runtime.dll'. S'il vous plaît voir [ici] (http://stackoverflow.com/q/40572793/7850). –

+0

@ShaulBehr: Je ne sais pas ce que vous entendez par "source" ici, mais je ne pense pas que je peux faire la lumière sur vos problèmes, j'ai peur. –

+0

Je veux dire, comment Visual Studio décide quelle version d'une DLL donnée est copiée dans le dossier obj? Dans mon cas, si le projet de rôle de travail fait référence à la version 4.3.1 de System.Runtime, pourquoi le projet Cloud Service copie-t-il une version différente de la DLL dans son dossier obj? –

Questions connexes