Hi!
Meinen Downloadmanager kann man per URL Protocol starten und genau da soll die programm.cs ein TOKEN erstellen.
ist das Programm nicht gestartet sondern wird erst per URL Protocol gestartet kommt es zu folgenden Fenster
Fehlermeldung:
...hat ein Problem festgestellt und muss beendet werden
soo welche Details ein eventueller Fehlerbericht enthalten würde konnte ich herausfinden, dass es sich um eine system.io.filenotfound exception handelt....
Also findet er irgednwas nicht...ich habe den kompletten code schon abgesucht....leider weiß ich nicht wie ich den so debuggen kann, dass er mir genauere ausspruckt...
Kann mir jemand sagen wie ich den Fehler so finden könnten?
Relativ einfach ist es sich am Anfang an die Unhandled Exception Events der Appdomain anzuhängen und dort die auftretenden Fehler zu loggen.
Sollte das nicht helfen, dann ist es ein Fehler beim laden der Assemblies. Hier sollte dir dann der "Fusion Log" weiterhelfen. Ich glaube, das man ihn sogar per registry dazu bringen konnte die Fehler in eine Logdatei zu schreiben aber hier bin ich mir nicht mehr ganz sicher.
Wie häng ich mich genau an die Appdomain drann? Sowas hab ich noch nie gemacht 😉.
Hast du zufällig irgendwelche schwammigen relativen pfade zu irgendwelchen Dateien in deinem Programm?
Application.Startuppath,
Envirpoment.CurrentDirectory
und natürlich "../Datei.endung"
können jenachdem wer wo was startetd sehr unterschiedlich sein. Hast du das mal geprüft?
Hast du daran gedacht eventuelle Biondungen an verwendete Assemblies zu prüfen, ob diese auch beim Start geladen werden können?
Wie häng ich mich genau an die Appdomain drann? Sowas hab ich noch nie gemacht 😉.
Googlesuche nach appdomain unhandled exception
Bitte etwas mehr Eigeninitiative!
Moin,
dass es sich um eine system.io.filenotfound exception handelt....
Also findet er irgednwas nicht
ja klar ... Dein Arbeitsverzeichniss müsste irgendwas mit c:/windows/system32 oder so sein - Du befindest Dich aber definitiv nicht im Verzeichnis Deines Programms ... das ist aber ein normale Betriebssystemverhalten (macht Linux & Co. auch so) ... Du musst also entweder am Anfang Deines Programms Environment.CurrentDirectory (?) richtig setzen ... oder die benötigten Daten (bzw. Pfad) fest vorgeben ... letzteres ist die sehr viel schlechtere Idee
hand, mogel
Hallo b0b0nr1,
für mögliche Fehlerursachen siehe .EXE läuft auf Entwicklungsrechner, aber nicht auf anderem PC analog.
herbivore
ist das Programm nicht gestartet sondern wird erst per URL Protocol gestartet[...]
Die URL kennst du aber doch, oder? Dann kannst du diese doch in den Projekteigenschaften unter "Debuggen" ins Feld "Befehlszeilenargumente" eintragen und ganz normal debuggen.
Alternativ kannst du auch einfach am Anfang deines Programms die Debugger.Break-Methode (System.Diagnostics) aufrufen. Dann wird an dieser Stelle explizit nach einem Debugger gefragt und du kannst dich mit dem VS dranhängen.
Gruß,
dN!3L