J'ai créé un nouveau projet dans Visual Studio 2010 et j'ai remarqué qu'il y avait maintenant deux nouveaux dossiers nommés obj
et bin
dans mon répertoire de projet.
Une paire de dossiers similaire est créée lors de la création et du débogage - à quoi servent ces dossiers?
Le dossier obj
contient fichiers objet ou intermédiaires, qui sont des fichiers binaires compilés qui n'ont pas encore été liés. Ce sont essentiellement des fragments qui seront combinés pour produire l'exécutable final. Le compilateur génère un fichier objet pour chaque fichier source et ces fichiers sont placés dans le dossier obj
.
Le dossier bin
contient fichiers binaires, qui constituent le code exécutable réel de votre application ou de votre bibliothèque.
Chacun de ces dossiers est subdivisé en dossiers Debug
et Release
, qui correspondent simplement aux configurations de construction du projet. Les deux types de fichiers décrits ci-dessus sont placés dans le dossier approprié, en fonction du type de construction que vous effectuez. Cela vous permet de déterminer facilement quels exécutables sont construits avec des symboles de débogage et ceux qui ont été construits avec des optimisations activées et prêtes à être publiées.
Notez que vous pouvez modifier l'emplacement où Visual Studio génère vos fichiers exécutables lors d'une compilation dans les propriétés de votre projet. Vous pouvez également modifier les noms et les options sélectionnées pour vos configurations de construction.
Je vous encourage à voir cette vidéo sur youtube qui montre la différence entre les dossiers dossiers C # bin et obj et explique également comment nous bénéficions des avantages de la compilation incrémentielle/conditionnelle.
La compilation en C # est un processus en deux étapes, voir le diagramme ci-dessous pour plus de détails: -
Si vous comparez les répertoires bin et obj, vous trouverez plus de fichiers dans le répertoire "obj", car il contient des fichiers de code compilés individuels, tandis que "bin" a une seule unité.
Le répertoire obj
est destiné aux fichiers objets intermédiaires et aux autres fichiers de données transitoires générés par le compilateur ou le système de construction au cours d'une construction. Le répertoire bin
est le répertoire dans lequel les fichiers binaires de sortie finaux (et toutes les dépendances ou autres fichiers déployables) seront écrits.
Si vous le souhaitez, vous pouvez modifier les répertoires utilisés à ces deux fins dans les paramètres du projet.
Un fait intéressant à propos du répertoire obj: si vous avez configuré la publication dans un projet Web, les fichiers qui seront publiés sont transférés vers obj\Release\Package\PackageTmp. Si vous souhaitez publier les fichiers vous-même plutôt que d'utiliser la fonctionnalité VS intégrée, vous pouvez récupérer les fichiers que vous avez réellement besoin de déployer ici, plutôt que de parcourir tous les débris numériques du répertoire bin.