2010-12-09 4 views
7

Ich habe eine WPF-App (.NET 3.5), die in der Regel auf unseren XP-Maschinen ausgeführt wird. In den letzten fünf Monaten gab es drei Fälle, in denen ein beschädigter Zeichensatzcache dazu führte, dass die Anwendung beim Laden nicht mehr reagierte.WPF: Umgang mit beschädigten Font-Cache

Das Löschen des Font-Cache per these Anweisungen löst das unmittelbare Problem.

Allerdings würde ich gerne einen Weg finden, entweder zu helfen, solche Korruption zu verhindern mit beginnen (das meiste von dem, was ich gelesen habe, dass es mit aktualisierten Grafiktreibern ohne Neustart zu tun hat?), Oder habe meine Anwendung Behandle einen korrupten Font-Cache in einer eleganten Art und Weise (gehe mit einer Fehlermeldung für den Benutzer aus, statt scheinbar unendlich lange im Zustand "Nicht zu reagieren"), oder lasse meine Anwendung den Font-Cache überhaupt nicht verwenden.

Ich bin offen für andere Optionen, natürlich, das sind die ersten drei, die mir in den Sinn kamen.

+0

Haben Sie bestätigt dieses Problem mit .NET Framework 4.0 vorhanden ist? Dies ist eine Client-Maschine, welche Art von Kontrolle hat der Client über seine Maschine? Ich nehme an, ein einfacher Neustart löst das Problem nicht oder ist keine Lösung, die realisierbar ist? –

+0

Bietet diese Anwendung einen beliebigen Texteditor, in dem Sie dem Benutzer möglicherweise die Auswahl einer Schriftart erlauben, habe ich festgestellt, dass Expression Web 3 ein ähnliches Problem mit einer beschädigten Schriftart hat. Sind auf Ihrem Client benutzerdefinierte Schriftarten installiert? –

+0

Ein einfacher Neustart löst das Problem nicht. Da es sporadisch ist, bin ich mir nicht sicher, wie man mit .NET 4.0 testet - ob alle Benutzer upgraden können, die App upgraden und hoffen, dass es nicht mehr passiert? – hilary

Antwort

2

Ich kann keine Lösung bieten, aber dies scheint ein zugrunde liegender Windows/WPF-Fehler zu sein. Wir hatten das gleiche Problem mit unserem Produkt, das ein geschlossenes Windows Embedded-System ist. Keine Software ist jemals installiert oder läuft außer unserer eigenen, keine Treiber nach der Erstinstallation geändert, usw. aber es passiert. Unsere aktuelle Lösung besteht darin, den Cache beim Herunterfahren immer zu löschen. Nicht großartig, aber funktioniert für uns.

(Leider ist dies eine Antwort kein Kommentar, ich habe nicht die notwendige Reputation haben)

+0

Wow - danke für die Eingabe. Ich bin immer froh zu wissen, dass ich nicht ein bisschen Computer verrückt bin. – hilary

0

Ich habe auch Anwendung abstürzt erhalten, wenn Schriftarten verwenden, die WPF konnte nicht machen. Und natürlich war das Entfernen der Schriften aus dem System keine Option für mich.

Die Lösung, die für mich gearbeitet: SystemFontFamilies error when binding to combobox