web-dev-qa-db-fra.com

La version C # contient toujours un fichier .pdb

Je souhaite déployer la version finale de mon application en C #.

Lorsque je crée à l'aide de la configuration Release, je peux toujours voir que .pdb des fichiers sont produits, ce qui signifie que mon application peut encore être déboguée. Cela signifie également que certaines informations de débogage sont présentes quelque part dans mon code, ce qui ralentit un peu.

Si cela est vrai, comment puis-je supprimer complètement les informations de débogage produites dans les binaires? Connaissez-vous également la raison de la libération .pdb? La configuration Release a le Optimize code vérifié, et seule la constante TRACE est définie, pas DEBUG.

Merci de votre aide.

Si vous souhaitez désactiver la génération de fichiers pdb, vous devez utiliser le "Advanced build settings" boîte de dialogue disponible dans les propriétés du projet après avoir cliqué sur "Advanced..." bouton "situé dans la partie inférieure de l'onglet Build.

Ensemble Output - Debug info: à None pour la configuration de la version finale et aucun fichier pdb ne sera généré.

95
Marek

La valeur par défaut est de générer également des PDB pour les versions. C'est une fonctionnalité et vous ne devez pas la désactiver. La génération de PDB signifie que vous pouvez obtenir plus d'informations lors du débogage. Les performances du code ne sont en aucun cas affectées par la présence de fichiers PDB.

48
Brian Rasmussen

Vous n'avez pas à expédier les .PDB avec le déploiement de votre version, mais ils sont utiles pour rester - par exemple, vous pouvez déboguer à distance le code exécuté sur une autre machine en utilisant les PDB de votre machine pour obtenir les numéros de ligne des exceptions. se produire.

Sans l'utilisation des fichiers .PDB, les numéros de ligne et les noms de fichiers ne sont pas inclus dans les stacktraces, il est donc beaucoup plus difficile de les déboguer.

13
Andy Shellam

Vous contrôlez la génération de pdb/symboles dans les propriétés du projet sous Build -> Advanced ... -> Debug info :. Les options sont les suivantes:

  • aucun (aucune information de symbole)
  • complet (un .pdb sera produit et des informations sur les symboles seront intégrées dans l'assemblage)
  • pdb uniquement (un .pdb sera produit mais l'assemblage n'est pas impacté)

Voir http://msdn.Microsoft.com/en-us/library/8cw0bt21%28VS.80%29.aspx pour plus d'informations.

Je fortement vous recommande de choisir l'option pdb uniquement, pas le aucune option car elle vous donne toujours des informations sur les symboles sans affecter l'Assemblée - vous constaterez probablement qu'il s'agit du paramètre actuel que vous avez sur vos versions.

13
Justin

Demander au compilateur de générer un .pdb le fichier ne s'exclut pas mutuellement pour qu'il optimise le code.

Pour plus d'informations à ce sujet, lisez ces blogentrées .

7
Mehrdad Afshari