Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Pfade aus der Entwicklungsumgebung in Assembly
Wax
myCSharp.de - Member

Avatar #avatar-2276.jpg


Dabei seit:
Beiträge: 745
Herkunft: Dortmund

Themenstarter:

Pfade aus der Entwicklungsumgebung in Assembly

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Wax
myCSharp.de - Member

Avatar #avatar-2276.jpg


Dabei seit:
Beiträge: 745
Herkunft: Dortmund

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1053

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4131

beantworten | zitieren | melden

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).
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

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!"
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16098

beantworten | zitieren | melden

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?
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Wax
myCSharp.de - Member

Avatar #avatar-2276.jpg


Dabei seit:
Beiträge: 745
Herkunft: Dortmund

Themenstarter:

beantworten | zitieren | melden

Vielen Dank an alle Beteiligten.

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

Gruß
wax
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3777
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16098

beantworten | zitieren | melden

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.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3777
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

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!"
private Nachricht | Beiträge des Benutzers