Laden...

Pfade aus der Entwicklungsumgebung in Assembly

Erstellt von Wax vor 6 Jahren Letzter Beitrag vor 5 Jahren 2.342 Views
Wax Themenstarter:in
731 Beiträge seit 2006
vor 6 Jahren
Pfade aus der Entwicklungsumgebung in Assembly

Hallo zusammen,

Ich habe da ein kleines Problem mit absoluten Pfaden aus der Entwicklungszeit, die aus einem mir unbekannten Grund in meinen Assemblies verbacken sind.

Wäre eigentlich nicht so wild, nur leider stecken in den Log Files beim Kunden jetzt in den Exception Beschreibungen meine "C:\Dev..." Pfade. Das fühlt sich falsch an. 😉

Was könnte ich beim Build falsch machen?

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Wax,

ohne Code schwer zu sagen. Hast du keine absoluten Pfade im Code verwendet? Auch die Referenz-Pfade nicht nicht irgendwo auf dein "C:\dev"?

Gruss

Coffeebean

Wax Themenstarter:in
731 Beiträge seit 2006
vor 6 Jahren

Hi Coffeebean,

also auf andere Projekte innerhalb meiner Solution verlinke ich über "Add Reference -> Projects". Ich referenziere aber auch .DLLs per "Add Reference -> Browse".

Sind diese "Browse" Verweise irgendwie anders hinterlegt im Projekt?

Also im Code habe ich keine Pfade hinterlegt.

Gruß
wax

1.040 Beiträge seit 2007
vor 6 Jahren

Schau mal per Texteditor in die .csproj und gucke ob da was bzgl. C:/Dev zu finden ist. Normalerweise lauten die Pfade dort "../../MeinTollesProjekt" oder ähnlich.

4.921 Beiträge seit 2008
vor 6 Jahren

Das wird dann der "HintPath" (s. Common MSBuild Project Items) bei einer Assembly Referenz sein.

PS: Auch Microsoft zeigt absolute Pfade des Build-Servers bei Fehlermeldungen an: Exception Crash: "In source code file..." (DirectX Fehler).

6.903 Beiträge seit 2009
vor 6 Jahren

Hallo Wax,

hast du Debug-Infos (pdb-Dateien) generiert und von dort stammen die Pfade bzw. Bezüge zur Zeilennummer?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

16.788 Beiträge seit 2008
vor 6 Jahren

Dann lieferst Du wohl Dateien an den Kunden, die so nicht an einen Kunden gehen sollten 😉

Siehe auch
Why does the Stack Trace shows my development files path?

Wax Themenstarter:in
731 Beiträge seit 2006
vor 5 Jahren

Vielen Dank an alle Beteiligten.

Es waren tatsächlich .pdb Dateien mit im Deployment.

Gruß
wax

3.825 Beiträge seit 2006
vor 5 Jahren

Hallo Wax,

es ist oft sinnvoll, die PDB Dateien mit an den Kunden auszuliefern.

Wenn sie nur Zeilennummern und keinen Source Code enthalten sollen dann kann man in den Eigenschaften des Projekts einstellen :

Build / Konfiguration : Release / Erweitert

Debuginformation : Nur PDB.

Dann bekommt man bei Exceptions im Stack Trace die Zeilennummer und den Dateinamen zurück wo die Exception aufgetreten, das erleichert die Fehlersuche ungemein. Es ist allerdings der Pfad Deiner Entwicklungsumgebung dabei, das ist OK so.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

16.788 Beiträge seit 2008
vor 5 Jahren

Da bin ich - wie übrigens auch Microsoft - völlig andere Meinung: PDB Dateien gehören nicht ausgeliefert.

Wenn Du das verwendest um Deine Zeilen zu bekommen, dann stimmt Dein Loggingkonzept nicht.
Wenn man dann korrekterweise den Release Modus (inkl. Code Optimization) ausliefert, dann stimmen die Informationen in den PDB Dateien sowieso nicht mehr.

Der korrekte bzw. empfohlene Weg dafür ist Full Structured Logging, zB. Serilog - aber nicht PDB.

3.825 Beiträge seit 2006
vor 5 Jahren

Wie sieht dann eine Fehlermeldung aus ?

Bei mir so mit Debuginfo "Nur PDB" und Code Optimieren = Ja :

Exception : Die Datei "sadad" konnte nicht gefunden werden.
Exception Stack : bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
                  bei QUASAR3.Mainmenu.MainMenu_Load(Object sender, EventArgs e) in .\MainMenu.cs:Zeile 354.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

6.903 Beiträge seit 2009
vor 5 Jahren

Hallo BerndFfm,

ich sehe das wie Abt.

Anhand deines Beispiels würde auch im Log stehen dass die Datei nicht gefunden wurde. Zusätzlich sollte der Kontext, aus dem heraus der Fehler entstand, mitgeloggt werden, so dass sich das Problem reproduzieren lässt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"