ich habe ein Problem und weiß leider nicht, wie ich weiter vorgehen kann:
wenn ich mein Programm starte stürzt es mit folgendes Fehlermeldung ab:
... hat ein Problem festgestellt und muss beendet werden.
Falls Sie ihre Arbeit noch nicht gespeichert hatten, können Daten möglicherweise verloren gegangen sein.
Ich habe in meiner main-Methode einen try-catch-Block herum, aber die fängt leider den Fehler nicht auf.
Und auch in der Ereignisanzeige steht nicht nichts drin...
Was kann ich denn noch machen um herauszufinden, was nicht passt? Bzw. hat irgendwer einen Tipp?
Danke, mfg
PS: ich denke, dass es am System liegt, weiß aber nicht was fehlt. Ist ein WinXP Rechner mit SP3 und installiertem .Net2.0 Redistributable Package... bin als lokaler Admin angemeldet...
Hallo,
nur als Idee:
Wenn in der Main-Methode eine Methode einer externen (referenzierten) Komponente aufgerufen wird und diese Komponente auf dem Zielrechner nicht vorhanden ist (GAC oder lokal oder wo auch immer), dann lässt sich diese Exception nicht per try-catch-Block in der Main-Methode fangen. Die Referenzen werden sozusagen bereits beim Eintritt in Main augelöst.
Um das zu überprüfen, könntest Du den Code der Main-Methode in eine weitere Methode auslagern, diese von Main aus aufrufen und den Aufruf in try-catch klammern. Dann käme zumindest eine sprechende Exception.
Vielleicht hilft's ja weiter.
Gruß
Thomas
Die Referenzen werden sozusagen bereits beim Eintritt in Main augelöst.
nein. die referenzen werden vom assemblyloader aufgelöst und dieser schreit noch vor der main, das er etwas nciht finden kann.
Prüfen ob du statisch und ohne Fehlerbehandlung von vorhandenen Ressourcen ausgehst und dies korrigieren.
nein. die referenzen werden vom assemblyloader aufgelöst und dieser schreit noch vor der main, das er etwas nciht finden kann.
Ja genau, er schreit. Und genau das könnte das Problem sein. Denn mit einem try-catch IN der Main kommt man dann nicht weiter.
kann es sein, dass ich irgendeine dll vergessen habe? oder eine falsche genommen habe?
soetwas vermute ich eigentlich...
aber danke für die Tipps
Hallo prom,
ich habe festgestellt, daß daß ein try-catch-Block in der main-Funktion eine unbehandelte Exception nicht mehr abfängt, wenn die Funktion Application.Run(MainWindow) erst einmal aufgerufen worden ist.
Um danach auftretende unbehandelte Exceptions abzufangen, solltest Du am Anfang der main einen Eventhandler registrieren.
static void Main()
{
Application.ThreadException += OnUnhandledAppRunExceptionOccured;
//...
}
static void OnUnhandledAppRunExceptionOccured(object sender, ThreadExceptionEventArgs args)
{
// write to logfile or display message
}
Gruß
Michael Schmitz
danke, erstmal, ich glaube, ich habe es eh schon. kann es aber erst morgen testen...
ich glaube, dass ich die sql server ce 3.0 statt der sql ce server 3.5 dateien beim Programm habe... werde das morgen prüfen...
danke, mfg
es waren einfach die falschen Libs dabei, die von ce server 3.0 statt 3.5...
und zu deinem Tipp @Hotzenplotz257:
das funktioniert gut, aber bei fehlenden Libs funktioniert das leider auch nicht...
Danke für die Hilfe, mfg