字体系列中未找到字体系列元素。

6

我的WPF应用程序突然出现以下异常:

System.IO.FileFormatException:在匹配当前操作系统或更高版本的FontFamilyCollection中找不到FontFamily元素:Windows7SP1

我已经尝试了不同的操作系统,但只有在安装了Windows 7 SP1的计算机上会发生这种情况。

4个回答

6

谢谢,是的,在那个公告上,这个链接是微软的Option1,它立即解决了问题,无需重新启动。https://www.catalog.update.microsoft.com/Search.aspx?q=4074906 - hamish

5
我发现异常与最新的安全更新KB4055532有关。当在Windows 7 SP1上卸载此更新时,问题消失了。

肯定是由于更新引起的。我收到了用户报告,安装KB4055532后出现了相同的错误弹窗。 - boromak
1
就安装KB4056894而言,启动PowerShell ISE时也会触发此异常。 - Lieven Keersmaekers

1

由于我不被允许评论:
“user2250152”用户的回答是正确的。
@Lieven Keersmaekers的评论:
“fwiw - 安装KB4056894也会在启动Powershell ISE时触发此异常”:
我真的怀疑这一点。
我在8台机器上处理了这个“KB4055532”问题有两天了。但在安装了“KB4056894”之后,启动Powershell ISE没有出现任何问题。
这只是在安装“KB4055532”之后开始发生的。
卸载此“KB4055532”(但仍在机器上拥有“KB4056894”)可以解决与Powershell相关的问题。
顺便说一下: 以下网站上有提示(以及“修复”该问题的方法): https://ngb.to/threads/32709-Microsoft-Patchday-Januar-2018-KB4055532-NET-Font-Probleme。 问题来自于一个“*.CompositeFont”文件,该文件被更新替换,然后缺少Windows 7的信息。 这使得基于WPF使用函数来确定FontFamily的程序失败/崩溃。
实际上,我非常确定只需要交换“GlobalUserInterface.CompositeFont”文件就可以临时修复此问题。


FWIW:昨天PowerShell ISE还能用,但是昨天安装了KB4056894 *(wmic qfe list)*,今天Powershell ISE就不能用了。从powershell_ise中获取crashdump显示出现了“FontFamiliyCollection”错误。 - Lieven Keersmaekers

0

我在使用MarkdownPad2时遇到了这个错误。通过.NET Framework January 2018 Rollup Known Issue KB4074906 - "TypeInitializationException" or "FileFormatException" error in WPF applications(感谢@Boris!)提供的信息,我使用手动修复选项下载并替换了被Microsoft更新安装的损坏字体,问题得以解决。

异常信息如下:

The invocation of the constructor on type 'MarkdownPad2.UserControls.MarkdownEditor' that matches the specified binding constraints threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Media.Fonts' threw an exception. ---> System.IO.FileFormatException: No FontFamily element found in FontFamilyCollection that matches current OS or greater: Windows7SP1

在升级过程中破坏字体似乎是一个不可原谅的错误。显然,微软也同意这一点,因为他们在技术说明中加入了以下评论:

我们会在提供给您之前对所有更新进行广泛测试。我们正在调查我们测试中的差距,并将在下一个版本中解决该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接