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.
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.
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
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.
Incluez des symboles de débogage dans votre package de construction/déploiement.
Dans VS 2008 Express, je l'ai trouvé sous Propriétés du projet -> Compiler -> Options de compilation avancées.