Forum: PC Hard- und Software C# + .net 2.0 cf: Merkwürdige Ausnahme nur im Debugger


von Uhu U. (uhu)


Angehängte Dateien:

Lesenswert?

Wenn ich mein Programm aus VS 2008 in das Zielgerät (Acer n50) lade, 
bekomme ich beim Deserialisieren eines Objektes eine Ausnahme, obwohl 
der Deserialisierbefehl in einem try-Block steht - siehe Anhang.

Der Stacktrace aus dem Exception-Objekt sieht folgendermaßen aus:
1
bei System.Reflection.Assembly.InternalGetSatelliteAssembly()
2
bei System.Reflection.Assembly.GetSatelliteAssembly()
3
bei System.Resources.ResourceManager.InternalGetResourceSet()
4
bei System.Resources.ResourceManager.GetString()
5
bei System.Resources.ResourceManager.GetString()
6
bei System.SRSupport.GetString()
7
bei System.SRSupport.GetString()
8
bei System.Xml.Res.GetString()
9
bei System.Xml.Serialization.SerializationHelper.CreateInstance()
10
bei System.Xml.Serialization.XmlSerializationReader.DeserializeComplexElement()
11
bei System.Xml.Serialization.XmlSerializationReader.deserializeElement()
12
bei System.Xml.Serialization.XmlSerializationReader.DeserializeElement()
13
bei System.Xml.Serialization.XmlSerializer.Deserialize()
14
bei System.Xml.Serialization.XmlSerializer.Deserialize()
15
bei System.Xml.Serialization.XmlSerializer.Deserialize()
16
bei Xtracker.Program.LoadSettings()
17
bei Xtracker.Program.Main()

Sinnigerweise tritt der Fehler nur auf, wenn der Debugger im Spiel ist.

Woher bekommt man Information, welche SatelliteAssembly das Problem 
verursacht?

von mensch (Gast)


Lesenswert?

Hi,
schonmal: } catch (Exception ex) { probiert?
Vill hat es eine Auswirkung auch wenn ich es nicht glaube.

von Uhu U. (uhu)


Lesenswert?

Wie zu erwarten war: es ändert sich nichts.

Ich nehme an, daß nach irgend einer Debug-Komponente im Acer gesucht 
wird. Fragt sich nur welche.

von mensch (Gast)


Lesenswert?

Hi,
was ist wenn du einen Release Build machst?
Funktioniert das generell nicht oder nur wenn xml leer ist?
Was passiert wenn du nur "s.Deser..(xml);" ausführst?
Die Referenzen hast du schon hinzugefügt?

von peter II (Gast)


Lesenswert?

Man kann im debugger einstellen, das er bei jeder exception breakt. 
Eventuell ist das bei dir ja verstellt.

Muss man catch nicht so schreiben?

} catch( exception ) {

von Uhu U. (uhu)


Lesenswert?

mensch schrieb:
> was ist wenn du einen Release Build machst?

Da funktioniert Debug wohl nicht so doll.

> Funktioniert das generell nicht oder nur wenn xml leer ist?

Die xml wurde vorher von demselben Programm geschrieben und die ganze 
Chose funktioniert, wenn kein Debugger im Spiel ist.

> Was passiert wenn du nur "s.Deser..(xml);" ausführst?

Das habe ich im Kommandofenster des VS gemacht - mit demselben 
Mißerfolg. Die Ausnahme hat mit dem Debugger zu tun.

> Die Referenzen hast du schon hinzugefügt?

Sonst würde es nicht compilieren und schon gar nicht laufen.

Im Simulator läuft es übrigens auch im Debugger.

von Uhu U. (uhu)


Lesenswert?

peter II schrieb:
> Man kann im debugger einstellen, das er bei jeder exception breakt.
> Eventuell ist das bei dir ja verstellt.

Kann man ihn denn auch so einstellen, daß er bei Exceptions im 
Debugger-Code nicht breakt? Ich vermute mal, daß das für einen Nutzer 
des Debuggers nicht sonderlich förderlich wäre.

> Muss man catch nicht so schreiben?
>
> } catch( exception ) {

Nein, muß man nicht. Wenn das Exception-Objekt nicht interessiert, kann 
man die ganze Klammer nebst Inhalt weglassen.

Wenn man das Objekt haben will, muß man es so schreiben:

  } catch(Exception e) {

C# läßt namenlose Parameter nicht zu.

von Ich (Gast)


Lesenswert?

FileNotFoundException......
Schon mal geprüft was da in der Variablen startupPath drinnen steht und 
ob das der korrekte Pfad ist?

von Uhu U. (uhu)


Lesenswert?

Es ist alles vorhanden, was zur Anwendung gehört. (Die xml wird vom 
Programm selbst erzeugt und beim nächsten Start wieder geladen.) Die 
FileNotFoundException ist irreführend - die kommt im Compact Framework 
2.0 SP2 an den unmöglichsten Stellen.

Aufschlußreicher ist der Stack-Trace und der deutet darauf, daß auf dem 
PDA irgendwas mit einer Assemby des Debuggers nicht stimmt. Nur was?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.