La version C # a encore le fichier .pdb

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

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

Si cela est vrai, comment puis-je supprimer complètement les informations de débogage produites dans les binarys? Connaissez-vous également la raison de la publication de .pdb ? Le Optimize code est Optimize code la configuration Release , et seule la constante TRACE est définie, et non DEBUG .

Merci pour votre aide.

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

Définir la Output - Debug info: sur None pour la configuration de la version de publication et aucun fichier pdb ne sera généré.

La valeur par défaut consiste à générer des PDB pour les versions de publication. C’est une fonctionnalité et vous ne devriez 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 affectées en aucune manière par la présence de fichiers PDB.

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

  • aucune (aucune information sur les symboles)
  • full (un .pdb sera produit, et certaines informations de symbole sont incorporées dans l’assembly)
  • pdb-only (un .pdb sera produit mais l’assembly n’est pas affecté)

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

Je recommande fortement que vous choisissiez l’option pdb uniquement, et non l’option no car cela vous donne toujours des informations sur les symboles sans affecter l’assemblage – vous constaterez probablement qu’il s’agit du paramètre actuel de votre version.

Vous n’avez pas à envoyer les fichiers .PDB avec le déploiement de votre version, mais ils sont utiles pour les conserver. 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 se produire.

Sans l’utilisation des fichiers .PDB, les numéros de lignes et les noms de fichiers ne sont pas inclus dans les espaces de stack, ce qui rend leur débogage beaucoup plus difficile.

Le fait que le compilateur génère un fichier .pdb ne s’exclue pas mutuellement pour optimiser le code.

Pour plus d’informations sur ce sujet, lisez ces entrées de blog .