J'ai une application WPF qui fonctionne bien sur ma machine de développement Vista, mais pas sur la production des boîtes XP. Le seul problème est avec un appel à OpenFileDialog.Show(). Dès que j'appelle la méthode, l'application est terminée sur la boîte XP.causant C# WPF OpenFileDialog accident dans XP, pas dans Vista
Le problème ne déclenche pas une exception. (J'ai entouré le bloc dans un bloc try-catch en vain.) Lorsque je clique sur Fichier-> Ouvrir l'application juste et quitte en XP. Fait intéressant, je peux écrire des fichiers sur le disque avec Fichier-> Enregistrer et en utilisant la boîte de dialogue Enregistrer sous. J'ai essayé de le construire à .Net 3.0 et 3.5 mais cela ne fait pas de différence.
J'ai essayé à la fois Microsoft.Win32.OpenFileDialog et System.Windows.Forms.OpenFileDialog et obtenir le même symptôme exact.
Le bloc de code pour la variante Microsoft.Win32:
try { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog().Value) { //do something } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error!"); }
Les seuls indices que j'ai est la suite de l'entrée (partielle) du journal des événements de sécurité.
Event Type: Failure Audit Event Source: Security Event Category: Object Access Event ID: 560 Description: Object Open: Object Server: Security Object Type: Key Object Name: \REGISTRY\MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\Disallowed Accesses: DELETE READ_CONTROL WRITE_DAC WRITE_OWNER Query key value Set key value Create sub-key Enumerate sub-keys Notify about changes to keys Create link
Des idées? (Pleeeease!)
'System.Windows.Forms.OpenFileDialog' est le WinForms un et ne doit pas être utilisé dans WPF. – Powerlord