显示初始屏幕后 Visual Studio 安装程序崩溃并出现异常

本文可帮助你解决显示初始屏幕后Microsoft Visual Studio 设置崩溃问题。

原始产品版本: Visual Studio 2012、2013
原始 KB 数: 2978135

总结

此问题可能发生,因为系统上的某些字体存在问题,例如字体路径中的无效字符或文件时间戳无效。 可以使用本文中的此信息来确定是否遇到此问题并根据需要解决问题。

诊断字体是否导致此崩溃

为此,必须打开 Visual Studio 安装程序日志文件,并在日志末尾附近查找特定异常。 可以在目录中找到安装程序日志文件 %TEMP% 。 Visual Studio 安装程序日志文件通常是目录中的最新日志文件 %TEMP% 之一。 Visual Studio 安装程序日志文件的名称具有以下模式:
dd_EXE name>_<Time stamp>.log<

<日志名称模式中的时间戳>标记具有时间格式:yyyymmddhmmss。 <日志名称模式中的 EXE 名称>令牌与安装程序可执行文件的名称相同。 安装程序可执行文件名称因尝试安装的 Visual Studio 产品的名称而异。 下面是 Exe 名称>令牌中<值的示例:

Visual Studio 产品短名称 <EXE 名称> 值
旗舰版 vs_ultimate
高级 vs_premium
Professional vs_professional
Windows Express winexpress_full
Web Express vns_full
桌面 Express wdexpress_full

找到 Visual Studio 安装日志后,必须查找在日志文件末尾附近记录的以下消息之一:

例外类型 消息
无效的字体名称或路径 [70B4:8A7C][<时间戳>]e000: MUX: ERROR: 'System.Windows.Media.FontFamily' 的类型初始值设定项引发异常。

[70B4:8A7C][<时间戳>]e000: MUX: Stack: at System.Windows.Media.Typeface..ctor(FontFamily fontFamily, FontStyle style, FontWeight weight, FontStretch stretch)
AT MS.Internal.Text.DynamicPropertyReader.GetTypeface(DependencyObject 元素)
AT MS.Internal.Text.TextProperties.InitCommon(DependencyObject 目标)
AT MS.Internal.Text.TextProperties..ctor(FrameworkElement 目标,Boolean isTypographyDefaultValue)
无效的字体时间戳 [70B4:8A7C][<时间戳>]e000: MUX: ERROR: 'System.Windows.Media.FontFamily' 的类型初始值设定项引发异常。

[70B4:8A7C][<时间戳>]e000: MUX: Stack: at System.Windows.Media.Typeface..ctor(FontFamily fontFamily, FontStyle style, FontWeight weight, FontStretch stretch)
AT MS.Internal.Text.DynamicPropertyReader.GetTypeface(DependencyObject 元素)
AT MS.Internal.Text.TextProperties.InitCommon(DependencyObject 目标)
AT MS.Internal.Text.TextProperties..ctor(FrameworkElement 目标,Boolean isTypographyDefaultValue)

解决方法

若要解决此问题,请检查字体路径中是否有无效字符,然后检查字体中是否有无效的文件时间戳。 为此,请按照下列步骤进行操作:

检查字体路径中的无效字符

  1. 使用注册表编辑器找到以下注册表项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
  2. 检查各个字体路径,查看是否有任何无效字符,例如“:”。如果字符无效,请更正它们,然后重试 Visual Studio 安装程序。

检查字体中的无效文件时间戳

  1. 打开命令提示符,然后找到 %WINDIR%\Font 目录:
  2. 使用 DIR 命令列出此目录中的字体。
  3. 查找任何无效的时间戳,例如 2014/01/20145 字体 <错误字体>。TTF。
  4. 如果时间戳无效,请更正它们。 要实现这一点,请执行下列操作:
    1. 打开提升的 PowerShell 窗口,然后输入以下命令,以修复带有无效时间戳的字体,用错误的字体>替换字体文件名<。TTF:

      (Get-Item "C:\Windows\Fonts\<Bad font>.TTF").LastWriteTime = "01/01/2014"
      
    2. 使用无效时间戳对所有字体重复这些步骤,然后重试 Visual Studio 设置。

Status

Microsoft已确认这是 Visual Studio 2012 和 2013 中的问题。