2010-07-09 6 views
0

J'ai hérité d'une application Windows Forms et j'ai constaté qu'un fichier .EXE est généré dans le dossier obj \ Debug chaque fois que je compile. Je suis plus un développeur de type Web Forms, donc je suis un peu confus quant à ce qui se passe ici. Pourquoi est-ce un .EXE et pas un .DLL? Que représente réellement ce fichier? Est-ce le comportement par défaut pour les applications Windows Forms? Ou, mon prédécesseur a-t-il dû le mettre en place d'une manière ou d'une autre? Pour autant que je sache, la solution n'a pas de projet de déploiement.EXE généré dans le dossier obj Debug

Répondre

1

Pourquoi est-ce un problème? Les projets d'application de console ont également un fichier exe dans le dossier obj/Debug. Les dossiers obj ne sont PAS utilisés pour exécuter l'application - ils sont utilisés pour créer les binaires de fin dans les dossiers bin.

Si la question concerne exe vs dll, le fichier exe compilé est utilisé pour exécuter l'application. Dans l'environnement Web, vous avez utilisé dll parce ASP.NET nouvelle façon d'exécuter du code. Mais Windows sait comment exécuter les fichiers exe, donc n'importe quel code peut être compilé dans un exécutable.

+0

Merci pour la réponse. Ce n'est pas un problème, j'étais curieux de savoir s'il s'agissait d'un comportement par défaut pour les applications Win Forms et je voulais avoir une meilleure compréhension de ce qui se passait. Votre réponse m'a aidé à mieux le comprendre. – Andrew

0

Pourquoi serait-ce une DLL? C'est une application - elle doit être orientable, contrairement à un site web qui vit «à l'intérieur» d'un serveur web (effectivement). Le fichier exe est l'application (avec toutes les bibliothèques nécessaires, bien sûr). Vous double-cliquez dessus, il lancera l'application. Aucun problème. Cela dit, vous devriez ignorer à peu près le répertoire obj - c'est juste un répertoire intermédiaire. Le répertoire bin est celui dont vous devriez obtenir les résultats de construction.

1

Chaque application que ce soit web ou windows aurait un point d'entrée pour l'exécution. Tout ce qui est sous forme compilée dans .Net est un assemblage qui ne doit pas toujours être un fichier DLL. Un fichier EXE est un assembly .Net avec un point d'entrée et quelques en-têtes au début du fichier qui s'identifie comme un exécutable autonome du système d'exploitation Windows. Dans le cas de votre application web, vos pages asp.net sont les points d'entrée que les utilisateurs taperaient dans un navigateur et lanceraient l'application. Dans le cas d'une application de bureau Windows Forms autonome, il s'agit d'un fichier EXECUTABLE, que l'utilisateur peut cliquer sur Exécuter. Je suis plus un développeur de type Web Forms, donc je suis un peu confus quant à ce qui se passe ici. Pourquoi est-ce un .EXE et pas un .DLL? Cela dit, il est également important de noter que, tout comme asp.net n'est pas la seule plate-forme pour développer des applications web [vous avez php, jsp, etc.], les formulaires Windows .Net sont pas non plus le seul moyen de créer des exécutables autonomes. Vous pouvez faire des EXEs en C, C++, VB, Delhpi, etc. seulement la différence serait qu'ils ne seront pas des assemblages .Net mais tous y compris les exécutables .Net auront un point d'entrée pour commencer l'exécution et l'entête EXE qui les identifie comme exécutables sur le système d'exploitation Windows hôte.

2

Ils sont de nombreux types d'application win dans delhpi. Si vous créez un formulaire Windows, .exe sera mis en cache dans le dossier de débogage de la même manière si vous créez des fichiers .dll Dynamic Link Liberary (DLL). Ces fichiers sont créés chaque fois que vous compilez l'application.

Questions connexes