打开代码分析规则集编辑器崩溃 Visual Studio

Opening the Code Analysis Ruleset editor crashes Visual Studio

每次我尝试使用代码分析执行任何操作时,Visual Studio 都会崩溃。事件查看器显示崩溃是由无效的 window-splitter 大小引起的。

堆栈跟踪:

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException
   at System.Windows.Forms.SplitContainer.set_SplitterDistance(Int32)
   at Microsoft.VisualStudio.CodeAnalysis.AdvancedRuleSetEdit.LoadHelpPaneSizeString(System.String)
   at Microsoft.VisualStudio.CodeAnalysis.AdvancedRuleSetEdit.LoadHelpPaneSettings()
   at Microsoft.VisualStudio.CodeAnalysis.AdvancedRuleSetEdit.SplitterResized(System.Object, System.EventArgs)
   at System.Windows.Forms.Control.OnResize(System.EventArgs)
   at System.Windows.Forms.Control.OnSizeChanged(System.EventArgs)
   at System.Windows.Forms.Control.UpdateBounds(Int32, Int32, Int32, Int32, Int32, Int32)
   at System.Windows.Forms.Control.UpdateBounds()
   at System.Windows.Forms.Control.WmWindowPosChanged(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.ScrollableControl.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.ContainerControl.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.SplitContainer.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)

Procmon 显示此值存储在私有注册表 bin 文件中。

删除代码分析的 window 设置修复了崩溃的原因。您可能需要在每次关闭 Visual Studio.

时执行此操作

从私有注册表 bin 中导出:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\vs2019\Software\Microsoft\VisualStudio.0_ad070b97\CodeAnalysis]
"RuleSetMRUList"=""
"RuleSelectionControl_Settings"="True,True,True,7,2,0,True,0;True;0.385#1;False;0.160#2;True;0.429#3;False;0.160#4;False;0.100#5;True;0.186#6;False;0.150#7;False;0.150#"
"RuleSetEditorHelpPaneSize"="573,573"

如果您运行喜欢这个,解决:

// put your instance id in the next line instead of ad070b97
cd C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio.0_ad070b97
reg load HKLM\vs2019 privateregistry.bin
reg delete HKLM\vs2019\Software\Microsoft\VisualStudio.0_ad070b97\CodeAnalysis /v RuleSetEditorHelpPaneSize
reg unload HKLM\vs2019

已在最新的 VS 2019 版本中修复

这是由您的显示器的缩放选项引起的。 (使文字和图标变大的部分。)

将缩放比例重置为 100%,它将显示 window。 vs 中还有其他控件也会导致问题,但这个控件会使其崩溃。如果它大于 100,则 vs 2017 的各个部分将不起作用。这会使它崩溃,表单设计器会抱怨,并且在解决方案属性页面中会显示一条错误消息。 (不是项目属性)

Microsoft 似乎从来没有抽出时间来测试或修复此问题。

测试确认。