【问题标题】:Visual Studio Hangs when closing .SQL files关闭 .SQL 文件时 Visual Studio 挂起
【发布时间】:2017-05-15 15:52:56
【问题描述】:

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

受影响的版本:

  • 2017年企业
  • 2015年企业

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

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

编辑:可在安全模式下使用 devenv 重现

想法?

【问题讨论】:

  • 你试过 devenv /SafeMode 吗?另一种选择是将另一个 Visual Studio 附加到第一个 Visual Studio 以在关闭第一个时检查调用堆栈,也许它正在连接到某个地方并超时。
  • 安全模式产生相同的结果。我使用了一个连接监视器来查看它是否向外伸出并悬挂。但没有骰子。好主意!
  • Visual Studio 是处理.sql 文件的最差工具。使用Notepad++ 会更好。就像字面意思一样,我从未见过比 Visual Studio 处理 sql 文件的工具更糟糕。

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


【解决方案1】:

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

真正的解决方案将来自 MS 的更新。不过,就目前而言,关闭我对“Visual Studio 体验改善计划”的参与似乎可以解决这个问题。

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

【讨论】:

  • 太棒了。找到兄弟了!
  • @RuslanK。很高兴听到这对其他人有所帮助!
  • 你摇滚!这已经让我发疯了好几个星期了。
  • 多么好的开膛手!这仍然是最新更新 (15.3) 的问题。
  • 在 15.4 中仍然是一个问题。当 sql 文件打开时,它似乎也会影响解决方案的关闭(或项目的卸载)。
【解决方案2】:

当 .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

这些与每次关闭窗口的尝试相关。取消选中构建配置管理器中的构建/部署框似乎没有帮助(我正在运行 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

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

【讨论】:

  • 惊人的洞察力,我的男人。也许我们应该在 VS 错误论坛中复制这个帖子?
  • 我是新来的……不确定最好的方法。
【解决方案3】:

我的解决方法是:

  1. 更新这些扩展:

    • 适用于 VS2017 的 ReadyRoll
    • SQL 提示核心
  2. 在 VS 2017 Enterprise 上禁用/重新启用以下扩展:

    • 适用于 VS2017 的 ReadyRoll
    • SQL 提示核心
    • SQL 搜索

当我试图找出导致挂起的扩展程序时,我无法确定具体的扩展程序。 无论如何,这种方法有效,我现在启用了所有三个扩展。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-05
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多