Entwickler-Ecke

WPF / Silverlight - WPF Anwendung startet unter WINXP nicht


Yankyy02 - Di 19.02.13 00:55
Titel: WPF Anwendung startet unter WINXP nicht
Hallo Leute!

Habe folgendes Probelm und zwar habe ich eine WPF Anwendung für das .NET Framework 4.0 Client Profile erstellt.

Auf 3 Systemen (2x Windows 7 x86, x64 , 1x Windows 8 x64 auf diesen Rechenr wurde die Anwendung entwickelt) startet
die Anwendung tadellos! Jedoch auf einem Rechner mit WinXP kommt sofort das hübsche Fenster ob man einen Fehlerbericht
an Microsoft senden möchte!

Die Anwendung selbst verwendet keine externe dll's und es wurden nur 6 icons als Ressourcen hinzugefügt! Die Anwendung arbeitet
mit einer Access Datenbank und schreibt nur Termine hinein und holt sich die Daten wieder aus der Datenbank. Access Runtime wurde
natürlich auch installiert! Erstellt wurde die Anwendung mit VS 2012 !

Kennt jemand das Problem bzw. hat selber schon damit zu tun gehabt?

Wäre euch sehr dankbar wenn Ihr mir einen Tip oder noch besser sogar eine Lösung für dieses Problem geben könnt!

MfG

Gery


Christoph1972 - Di 19.02.13 08:03

Hi,

du musst die UnhandeldException abfangen und die Meldung in eine txt Datei schreiben. Genau so ein Verhalten hatte ich, wenn Komponenten die dein Programm verwendet, nicht 64bit fähig sind! Hier würde z.B. der Provider für Access in Frage kommen.


Yankyy02 - Di 19.02.13 12:56

Servus,

danke für deinen Beitrag!

Reicht es im Konstruktor von meinem MainWindow die Ereignissmethode anzuhängen etwa so:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
AppDomain.CurrentDomain.UnhandledException += 
        new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

 void CurrentDomain_UnhandledException(Object sender, UnhandledExceptionEventArgs args)
     {
          Exception e = (Exception) args.ExceptionObject;
          MessageBox.Show(e.Message);
     }


Die 64bit Komponenten würde ich eher ausschließen da die Zielplattform auf x86 gestellt ist
und die Runtime auch für x86 installeirt ist! (auf allen Systemen).

Die Frage ist ob mir die MessageBox überhaupt angezeigt wird da die Anwendung ja gar nicht angezeigt
wird sondern sofort über den Jordan geht und die Meldung zum senden vom Fehlerbericht angezeit wird!

Vielen dank für die Unterstützung!

MfG


Th69 - Di 19.02.13 14:24

Hallo Yankyy02,

nicht im MainWindow, sondern direkt in Application, s. http://www.codeproject.com/Articles/90866/Unhandled-Exception-Handler-For-WPF-Applications
Abonniere somit auch Application.DispatcherUnhandledException.


Yankyy02 - Di 19.02.13 15:49

Hy Th69,

dankeschön habs jetzt so implementiert und jetzt bekomm ich auch eine Fehlermeldung allerdings
kann ich nicht viel damit anfangen!!

Zitat:
Durch den Aufruf des Konstruktors für Typ "CarExtradition.MainWindow", der den angegebenen Bindungseinschränkungen
entspricht, wurde eine Ausnahme ausgelöst.


Danach passiert nichts mehr! Weder die Anwendung startet noch komt der Bericht zum senden!

Jemand ne Idee worans liegen könnte?

Daß Problem (ich weis sitzt meistens vorm Computer) ist das dies mein erstes Projekt in WPF ist und ich von WinForms
solche zickerein nicht gewohnt bin!

MfG


Th69 - Di 19.02.13 15:55

Hallo,

laß dir auch mal die InnerException ausgeben:

C#-Quelltext
1:
2:
if (e.InnerException != null)
    MessageBox.Show(e.InnerException.Message);


Yankyy02 - Di 19.02.13 16:06

Zuerst mal danke für die rasche Antwort!

Hab jetzt folgendes gemacht:

Ich verwende insgesamt 6 Icons (.ico) Datein die ich unter Resourcen hinzugefügt habe!
Diese liegen im Objektmappenexplorer im Ordner Recources der Buildvorgang ist auf Recource
gestellt! Wenn ich nun die Bilder bzw. icons im Designer ausblende und die Setup neu erstelle
und auf meinem XP Rechner installiere startet die Anwendung ganz normal!!

XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
<!-- Anfang der Schaltflächen rechts oben -->
        <WrapPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right">
            <Button Margin="2,5,2,0" Height="25" Width="25" Background="Transparent" BorderThickness="0" Click="Aenderungen_speichern_Click" ToolTip="Änderungen speichern">
                <!--Image Source="Resources/SaveDelivery.ico"></Image-->
            </Button>
            <Button ToolTip="Termine aus Datenbank aktualisieren" Background="Transparent" BorderThickness="0" Margin="2,5,15,0" Height="25" Width="25" Click="Datenbank_aktl_click">
                <!--Image Source="Resources/Aktualisieren.ico"></Image-->
            </Button>


Zusätzlich hab ich auch das Fenster Icon herausgenommen!!

MfG


Th69 - Di 19.02.13 16:56

Hallo,

bist du dir sicher, daß der (jetzt auskommentierte) Image Source-Pfad denn korrekt war? Probiere mal "pack://application:", s. http://www.c-sharpcorner.com/blogs/4630/how-to-add-an-image-source-as-a-resource-in-wpf.aspx
Näheres zu "Pack URIs" findest du unter http://msdn.microsoft.com/en-us/library/aa970069%28v=VS.90%29.aspx#The_Pack_URI_Scheme

Als Abkürzung müsste auch "/Resources/SaveDelivery.ico" funktionieren (beachte den Slash am Anfang!).

Oder könnte es an den Icons selber liegen? Kannst ja mal einfach die Icon-Dateien auf den XP-Rechner kopieren und dort dann (in der Vorschau) anzeigen lassen.


Yankyy02 - Di 19.02.13 17:17

Servus,

wenn ich die Icons auf dem XP Rechner am Desktop ablege werden sie ganz normal
angezeigt! Jedoch wenn ich sie in der Vorschau also einen Doppelklick drauf mache
kommt "Keine Vorschau verfügbar" !!

Kann XP mit den Dateien also nicht umgehen oder wie??

Jetzt kommt eine andere Fehlermeldung:

Die Angabe eines Werts für "System.Windows.Baml2006.TypeConverterMarkupExtension" führte zu einer Ausnahme.

Jetzt wirds allmählich zum verzweifeln!!

MfG


Yankyy02 - Di 19.02.13 20:25

Okidoki,

hab jetzt png Dateien genommen und per Drag & Drop hinzugefügt und den Build auf Resource gestellt!

Jetzt klappt es einwandfrei!

Mich würde es trotzdem interessieren warum es nicht klappt wenn ich die Bilder über die Projekt-Eigenschaften
hinzufüge! Werden diese bzw. muss man diese Resourcen anders laden??

MfG


Th69 - Di 19.02.13 20:51

Hallo,

bei Build auf "Resource" stellen werden diese Dateien direkt in die EXE mit einkompiliert.
Ansonsten müßtest du die Dateien immer zu deiner Anwendung dazukopieren (es gibt dafür dann auch extra die Eigenschaft "Copy to Output Directory" (auf deutsch in etwa "ins Ausgabeverzeichnis kopieren"): "Copy if newer" bzw. "Copy always", so daß diese Dateien dann immer schon ins "bin"-Verzeichnis beim Kompilieren kopiert werden).


Yankyy02 - Di 19.02.13 21:23

Seas,

das ist mir schon klar aber beide Formate wurden auf Resource gestellt erst als ich die Dateien
per Drag&Drop in die Projektmappe kopiert habe hatt es funktioniert und das wundert mich ein bischen!

MfG