Visual Studio 2015年企业启动、卸载、修复崩溃

Visual Studio 2015 enterprise crashes on startup, uninstall and repair

如何修复 Visual Studio 2015 Enterprise Edition 以正确安装和工作?

在安装过程中,安装 Java SE 时出现问题。它是可选的,所以我什么都没想。我重新启动了计算机。现在,每当我尝试打开 Visual Studio 2015、重新安装或卸载时,我都会短暂地看到徽标,然后它就消失了。

我在事件查看器中找到一条来自 Windows 错误报告的消息,该消息指向以下文件夹中的日志。

C:\users\{me}\AppData\Local\Temp\dd_vs_enterprise_20150720190843

创建视图似乎有困难。我复制了下面的一部分日志。

[261C:12FC][2015-07-20T19:08:52]i000: MUX:  Detect Completed
[261C:12FC][2015-07-20T19:08:52]i000: MUX:  Wait for View to be loaded
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Detect Completed, now create view
[261C:1860][2015-07-20T19:08:52]e000: MUX:  ERROR: The type initializer for 'System.Windows.Media.FontFamily' threw an exception.
[261C:1860][2015-07-20T19:08:52]e000: MUX:  Stack:    at System.Windows.Media.Typeface..ctor(FontFamily fontFamily, FontStyle style, FontWeight weight, FontStretch stretch)
   at MS.Internal.Text.DynamicPropertyReader.GetTypeface(DependencyObject element)
   at MS.Internal.Text.TextProperties.InitCommon(DependencyObject target)
   at MS.Internal.Text.TextProperties..ctor(FrameworkElement target, Boolean isTypographyDefaultValue)
   at System.Windows.Controls.TextBlock.GetLineProperties()
   at System.Windows.Controls.TextBlock.EnsureTextBlockCache()
   at System.Windows.Controls.TextBlock.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Control.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.StackPanel.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   at System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Window.MeasureOverrideHelper(Size constraint)
   at System.Windows.Window.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Interop.HwndSource.SetLayoutSize()
   at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
   at System.Windows.Interop.HwndSource.set_RootVisual(Visual value)
   at System.Windows.Window.SetRootVisual()
   at System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
   at System.Windows.Window.CreateSourceWindowImpl()
   at System.Windows.Window.SafeCreateWindow()
   at System.Windows.Window.ShowHelper(Object booleanBox)
   at System.Windows.Window.Show()
   at Microsoft.Devdiv.Bootstrapper.ManagedUx.RunUI(ViewModelCommonUi viewModel)
   at Microsoft.Devdiv.Bootstrapper.ManagedUx.InternalRun()
   at Microsoft.Devdiv.Bootstrapper.ManagedUx.Run()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[261C:1860][2015-07-20T19:08:52]e000: MUX:  Exception: Info: InnerException: Info:
[261C:1860][2015-07-20T19:08:52]e000: MUX:  ERROR: The type initializer for 'MS.Internal.FontCache.Util' threw an exception.
[261C:1860][2015-07-20T19:08:52]e000: MUX:  Stack:    at System.Windows.Media.FontFamily.PreCreateDefaultFamilyCollection()
   at System.Windows.Media.FontFamily..cctor()
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Metrics: ShouldSendData=True
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Permission to upload: Yes
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Preparing to serialize data.
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Data serialized.
[261C:1860][2015-07-20T19:08:52]i000: MUX:  Number of SQM File queued: 1
[261C:1860][2015-07-20T19:09:14]i000: MUX:  SQM sent: True
[261C:1860][2015-07-20T19:09:14]i000: Setting string variable 'CEIPConsent' to value ''
[261C:1860][2015-07-20T19:09:14]i000: Setting string variable 'SqmOption' to value ''
[261C:1860][2015-07-20T19:09:14]i000: MUX:  Metrics: Configuration State

我遇到了同样的问题,这就是我所做的:

  1. 清除了 %temp% 中的所有内容,在我的机器上是 "C:\Users[user name]\AppData\Local\Temp"
  2. 重新启动我的机器。
  3. 重启后从 %temp% 中清除剩余的锁定文件(这可能是重启后的一步,但这是我进入的顺序)。
  4. 删除了我安装的最高版本的 Android SDK 文件夹中的所有 "Roboto" 字体。对我来说,最高版本是 android-17: C:\Users[用户名]\AppData\Local\Android\android-sdk\platforms\android-17\data\fonts

请注意,"Roboto-Bold.ttf" 字体即使在重新启动后仍在使用,所以我没有删除它。但是问题消失了,所有其他的都被删除了。

希望对您有所帮助...

经过相当多的研究,我发现了两个导致安装和修复问题的问题。

注册表中的字体异常

  1. Open the registry
  2. 转到注册表中的字体位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontCache
  3. 在我的例子中有一种特殊的字体,MT Extra (TTF),它有一个很长的路径而不是像其他字体一样的文件名。
  4. 我将字体名称更改为文件名 MTEXTRA.TFF
  5. 重新启动我的电脑

路径长度超过 2048 个字符

  1. 我查看了路径,发现它超过了2048个字符
  2. 这是一个known issue(即使难以诊断)
  3. Removed certain entries 使其少于 2048 个字符
  4. 重新启动

完成这两个步骤后,我可以在控制面板中从 Programs and Features 进行修复,并且安装正常。

我遇到了类似的问题,尝试了其他解决方案均无济于事。我什至修复了安装,但没有效果。我能够通过重置所有用户设置来解决它。

导航到 devenv.exe 文件;对我来说是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\.

然后在那里打开命令提示符 运行:

devenv.exe /ResetSettings