web-dev-qa-db-fra.com

Afficher le nombre de lignes dans Stack Trace pour .NET Assembly en mode Release

Existe-t-il un moyen d'afficher les lignes dans la trace de la pile pour .NET Assembly généré/déployé en mode Publication?

MISE À JOUR:

Mon application est divisée en trois projets de bibliothèque de classes et un projet "site Web" ASP.NET. L'erreur que j'essaie de localiser se trouve dans l'un des trois projets de bibliothèques de classes. J'ai uniquement déployé le fichier pdb pour le projet de bibliothèque de classes qui génère l'erreur "Référence d'objet non définie à une instance d'objet".

Les numéros de ligne n'apparaissent toujours pas dans la trace de la pile. Dois-je déployer les fichiers pdb pour tous les projets pour obtenir les numéros de ligne dans la trace de la pile?

Solution de travail

Le déploiement du fichier pdb pour chaque application a résolu le problème du numéro de ligne.

136
Michael Kniskern
  • Accédez à la fenêtre Propriétés du projet où vous souhaitez voir les numéros de ligne de trace de pile.
  • Cliquez sur le "onglet vertical" de construction.
  • Sélectionnez la configuration "Release". Vérifiez le paramètre constant DEBUG.
  • Décochez le paramètre "Optimiser le code" pour éviter les problèmes de trace occasionnels avec le code en ligne (cette étape n'est pas indispensable).
  • Appuyez sur le bouton Avancé ... et choisissez Sortie -> Informations de débogage -> pdb uniquement.
  • Déployez le fichier .pdb généré avec l'assembly.

Mis en œuvre avec le commentaire ci-dessous:

  • Une autre chose à vérifier est dans la section "Package/Publish Web" que la case à cocher "Exclure les symboles de débogage générés" est également décochée.
138
Coxy

Dans VS2012, vous devez également décocher "Exclure les symboles de débogage générés" dans la section Package/Publish Web des propriétés.

17
user3250653

Ma solution

Copiez le fichier pdb dans le même dossier que le fichier exécutable.

maintenant, je peux voir le numéro de ligne lors de l'exécution du fichier exe.

c'est la raison

http://msdn.Microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx

15
juan carlos

Dans le passé, j'ai rencontré des problèmes où je ressentais le besoin de déployer des fichiers PDB avec une version validée afin de localiser une erreur. La raison en est, comme vous l'avez dit, que l'exception est apparue avec une méthode très volumineuse et que je ne pouvais pas déterminer avec précision où cela se passait.

Cela pourrait indiquer que la méthode doit être refactorisée en méthodes plus petites et plus granulaires. Ce n’est pas une solution uniforme, mais cette approche m’a bien servi à court terme (j’ai souvent trouvé le bogue lors de la refactorisation) et à long terme.

Juste une pensée.

8
slolife

Incluez des symboles de débogage dans votre package de construction/déploiement.

3
Ken Browning

Dans VS 2008 Express, je l'ai trouvé sous Propriétés du projet -> Compiler -> Options de compilation avancées.

0
Darel