关闭.SQL文件时,Visual Studio挂起

时间:2017-05-15 15:52:56

标签: visual-studio visual-studio-2015 visual-studio-2017 sql-server-data-tools sqlproj

我禁用了所有扩展,只打开了1个Sql Project。但每当我关闭一个SQL文件时,Visual Studio就会挂起。

  

受影响的版本:

     
      
  • 2017 Enterprise
  •   
  • 2015 Enterprise
  •   

在此“挂起时间”期间,Visual Studio拥有“无响应”状态。

它似乎也保持锁定的时间与关闭/打开的文件数量相关。

  

编辑:使用安全模式中的devenv重现

思想?

3 个答案:

答案 0 :(得分:21)

  

打开MS Ticket:https://developercommunity.visualstudio.com/content/problem/67789/visual-studio-hangs-when-closing-sql-files.html

真正的解决方案将来自MS的更新。但是现在,关闭我参与“Visual Studio体验改善计划”似乎解决了这个问题。

您可以点击“帮助” - >来检查您是否注册了此计划。发送反馈 - >设置(2017年,不确定2015年)。

答案 1 :(得分:0)

当.sql文件窗口关闭时,VS似乎正在生成Windows错误报告(WER)事件:

Fault bucket , type 0
Event Name: VisualStudioNonFatalErrors2
Response: Not available
Cab Id: 0

Problem signature:
P1: devenv.exe
P2: 15.0.26430.12
P3: vs.platform.hwndwrapper.destroy-window-error
P4: unknown
P5: Microsoft.VisualStudio.Shell.15.0
P6: Microsoft.VisualStudio.PlatformUI.HwndWrapper.DestroyWindowCore
P7: unknown
P8: unknown
P9: unknown
P10: unknown

这些与每次关闭窗口的尝试相关。取消选中Build Configuration Manager中的构建/部署框似乎没有帮助(我正在运行VS 2017 Enterprise)。

在wermgr.exe关闭句柄后关闭单个窗口时,运行procmon显示我的机器延迟了11秒:

12:19:31.2071581 AM devenv.exe  6564    CloseFile   C:\Windows\SysWOW64\wermgr.exe  SUCCESS 
12:19:32.7423468 AM devenv.exe  6564    Thread Exit     SUCCESS Thread ID: 16288, User Time: 0.0000000, Kernel Time: 0.0000000
12:19:36.6511179 AM devenv.exe  6564    Thread Create       SUCCESS Thread ID: 8576
12:19:38.1531428 AM devenv.exe  6564    Thread Exit     SUCCESS Thread ID: 8576, User Time: 0.0000000, Kernel Time: 0.0000000
12:19:42.7939996 AM devenv.exe  6564    Thread Create       SUCCESS Thread ID: 12052
12:19:42.7952451 AM devenv.exe  6564    Thread Exit     SUCCESS Thread ID: 12052, User Time: 0.0000000, Kernel Time: 0.0000000
12:19:42.7953980 AM devenv.exe  6564    Thread Create       SUCCESS Thread ID: 6892
12:19:42.7984705 AM devenv.exe  6564    RegQueryKey HKLM    SUCCESS Query: HandleTags, HandleTags: 0x0

这似乎是一个产品错误,目前没有已知的解决方法。

答案 2 :(得分:0)

我的解决方法是:

  1. 更新这些扩展程序:

    • VS2017的ReadyRoll
    • SQL Prompt Core
  2. 在VS 2017 Enterprise上禁用/重新启用以下扩展程序:

    • VS2017的ReadyRoll
    • SQL Prompt Core
    • SQL搜索
  3. 虽然我试图找出导致挂起的扩展程序,但我找不到具体的扩展程序。 无论如何,这种方法有效,我现在已经启用了所有三个扩展。

    这一切都很奇怪,因为我在上个星期五打开工作站,VS打开了。而这个星期一早上,它在尝试打开任何.sql文件时就开始挂起,即使文件是空的。