显示初始屏幕后,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

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

Visual Studio 产品短名称 <EXE 名称> 值
Ultimate vs_ultimate
高级 vs_premium
专业 vs_professional
Windows Express winexpress_full
Web Express vns_full
Desktop Express wdexpress_full

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

异常类型 消息
无效的字体名称或路径 [70B4:8A7C][<时间戳>]e000:MUX:错误:“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:错误:“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. 查找任何无效的时间戳,例如 01/02/20145 字体 <错误>。TTF。
  4. 如果时间戳无效,请更正它们。 为此,请按照下列步骤操作:
    1. 打开提升的 PowerShell 窗口,然后输入以下命令,以修复具有无效时间戳的字体,将字体文件名<替换为“错误字体>”。TTF:

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

状态

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