简 述: 发现 Win10 的 20H2 的一个 BUG,使用 VS 2013、2015、2017 、2019 的窗口拖曳拆分、合并都会崩溃。
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
现象
重装系统 win10,使用最新 20H2 + VS 2019,结果发现拖曳 VS 窗口进行合并或拆分时候,放完成松手完成时候, VS 都会崩溃重启,甚是不爽。详细版本如下:
// Win10 版本
版本 Windows 10 专业版 版本号 20H2
安装日期 2021/4/16 操作系统内部版本 19042.804
体验 Windows Feature Experience Pack 120.2212.551.0// VS 版本
Visual Studio Professional 2019 版本 16.4.12
痛点
我的电脑 Win10 无法更新系统,VS 2019 虽然可联网更新,但是升级之后,可能项目会编译不过(进退两难)。
无法连接到更新服务。我们将稍后再试,你也可以立即进行检查。如果问题仍然存在,请确保你已连接到 Internet。
很蛋疼的一点是,某种原因,网管把所有电脑把 win10 自动更新的域名断了(一开始还以为是此版本的 BUG,尝试多种方案均链接网络失败)。后灵光一闪,猜是网管掐了。气死了,气死了,气死了,不过电脑不更新了,好像也挺爽。
解决
将就解决方案
又不是不能用,不拖曳窗口就行,不会弄那就这样将就用
临时解决方案
虽然拖曳窗口会崩溃,但可以鼠标右键 “新建垂直文档组”。也达到目的,不过不够优雅
优雅的解决方案
编辑 %InstallRoot%\Common7\IDE\devenv.exe.config
和 %LocalAppData%\Microsoft\VisualStudio\16.0_xxx\devenv.exe.config
,并在AppContextSwitchOverrides 元素的 value 属性的结尾上添加以下代码。(找不到就用 Everything 搜索,修改hi前记得先备份原文件)。
;Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true;Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true
重启 VS 2019,拖曳窗口合并拆分,完美且不会崩溃。
其他解决方案
- 对于 VS 2013、2015,只需要升级 win10 补丁即可,重启正常。
- 对于 2019 、只需升级 VS 到最新版本即可(Microsoft 已修复)。
- 对于 VS 2017,可以试试先升级系统,后升级 VS 。
系列
欢迎 star
⭐ 和 fork
🍴 这个系列的 C++ / QT / DTK
学习,附学习由浅入深的目录,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且永久免费!”