Gibt es eine Möglichkeit, die Zeilen im Stack-Trace für die im Release-Modus erstellte / bereitgestellte .NET-Assembly anzuzeigen?
AKTUALISIEREN:
Meine Anwendung ist in drei Klassenbibliotheksprojekte und ein ASP.NET-Website-Projekt unterteilt. Der Fehler, den ich aufzuspüren versuche, liegt in einem der drei Klassenbibliotheksprojekte. Ich habe die pdb-Datei nur für das Klassenbibliotheksprojekt bereitgestellt, das den Fehler "Objektreferenz nicht auf eine Instanz eines Objekts festgelegt" generiert.
Die Zeilennummern werden im Stack-Trace immer noch nicht angezeigt. Muss ich die pdb-Dateien für alle Projekte bereitstellen, um die Zeilennummern im Stack-Trace zu erhalten?
Arbeitslösung
Durch die Bereitstellung der PDF-Datei für jede Anwendung wurde das Problem mit der Zeilennummer behoben.
quelle
In VS2012 müssen Sie auch im Abschnitt "Paket / Web veröffentlichen" der Eigenschaften das Kontrollkästchen "Generierte Debug-Symbole ausschließen" deaktivieren.
quelle
Meine Lösung
Kopieren Sie die PDF-Datei in denselben Ordner wie die ausführbare Datei.
Jetzt kann ich die Zeilennummer anzeigen, wenn die exe-Datei ausgeführt wird.
Das ist Grund
http://msdn.microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx
quelle
Ich bin in der Vergangenheit auf Probleme gestoßen, bei denen ich das Bedürfnis verspüre, PDB-Dateien mit einem Release-Build bereitzustellen, um einen Fehler aufzuspüren. Der Grund ist, wie Sie sagten, dass die Ausnahme bei einer sehr großen Methode auftrat und ich nicht genau bestimmen konnte, wo sie stattfand.
Dies könnte ein Hinweis darauf sein, dass die Methode in kleinere, detailliertere Methoden umgestaltet werden muss. Keine einheitliche Antwort passt, aber dieser Ansatz hat mir kurzfristig (ich habe den Fehler beim Refactoring oft gefunden) und langfristig gute Dienste geleistet.
Nur ein Gedanke.
quelle
Fügen Sie Ihrem Build- / Bereitstellungspaket Debug-Symbole hinzu.
quelle
In VS 2008 Express fand ich es unter Projekteigenschaften -> Kompilieren -> Erweiterte Kompilierungsoptionen.
quelle
Dies funktioniert jedes Mal. Sie müssen nur die Stack-Trace-Nachricht mit einem Teilstring versehen. Ganz einfach! Außerdem müssen Sie in vb.net "Alle Dateien anzeigen" ausführen und die PDF-Datei einschließen.
C # -Version:
quelle