2010-12-09 37 views
7

J'ai une application WPF (.NET 3.5) qui est généralement exécutée sur les machines XP de nos clients. Au cours des 5 derniers mois, il y a eu trois cas où un cache de polices corrompu a empêché l'application de répondre au chargement. La suppression du cache de polices par instructions these permet de résoudre le problème immédiat.WPF: Gestion du cache de polices corrompues

Cependant, je voudrais trouver un moyen d'aider à empêcher une telle corruption pour commencer (la plupart de ce que j'ai lu suggère qu'il a à voir avec les pilotes vidéo mis à jour sans redémarrage après?), Ou avoir mon application gérer un cache de police corrompu d'une manière gracieuse (fermer avec un message d'erreur pour l'utilisateur, au lieu de rester à l'état de "ne répond pas" indéfiniment), ou mon application n'utiliser pas le cache de polices du tout.

Je suis ouvert à d'autres options, bien sûr, ce sont les trois premiers qui me sont venus à l'esprit.

+0

Avez-vous confirmé ce problème existe avec .NET Framework 4.0? C'est une machine cliente, quel genre de contrôle le client a-t-il sur sa machine? Je suppose qu'un simple redémarrage ne résout pas le problème ou n'est pas une solution viable? –

+0

Est-ce que cette application fournit n'importe quel type d'éditeur de texte, où vous pourriez permettre à l'utilisateur de choisir une police, j'ai trouvé que Expression Web 3 a un problème similaire avec une police corrompue. Votre client a-t-il installé des polices personnalisées? –

+0

Un redémarrage simple ne résout pas le problème. Comme il est sporadique, je ne suis pas sûr de savoir comment tester avec .NET 4.0 - voir si tous les utilisateurs peuvent mettre à jour, mettre à jour l'application et espérer que cela n'arrivera plus? – hilary

Répondre

2

Je ne peux pas fournir de solution, mais cela semble être un bogue Windows/wpf sous-jacent. Nous avons eu le même problème sur notre produit qui est un système Windows Embedded fermé. Aucun logiciel n'est jamais installé ou exécuté sauf le nôtre, aucun pilote n'a été modifié après l'installation initiale, etc., mais cela arrive. Notre solution actuelle consiste à toujours supprimer le cache à l'arrêt. Pas génial mais ça marche pour nous.

(Désolé, c'est une réponse pas un commentaire, je n'ai pas la réputation nécessaire)

+0

Wow - merci pour l'entrée. Toujours heureux de savoir que je ne souffre pas d'un peu de folie informatique tout seul. – hilary

0

Je l'ai fait aussi application se bloque lors de l'utilisation des polices qui WPF ne pouvait rendre. Et bien sûr, supprimer les polices du système n'était pas une option pour moi.

La solution qui a fonctionné pour moi: SystemFontFamilies error when binding to combobox