Visual Studio 切换到调试模式时会卡住

25

奇怪的Visual Studio (TS 2008)问题:在特定项目中从Release模式切换到Debug模式时,IDE会完全冻结。这种情况发生在我刚刚切换模式,之前没有任何构建或其他操作。

整个问题突然出现,我想不到任何异常变化。我尝试了清理解决方案,但没有帮助。

是否有人遇到过这种情况?


我在VS2012中的一个大型解决方案(148个项目)上遇到了这个问题。当我从Debug切换到Release时,它会冻结。 - tofutim
我在使用VS 2019时遇到了类似的问题。 - Eniola
5个回答

32

如果一切正常运行,但后来停止了,通常意味着虽然未被注意到,但存在一些问题。

我会尝试以下操作:

  1. 检查更新源控制引擎后更改了哪些文件(原因和方式是什么)
  2. 查看扩展和插件列表。尝试禁用所有或部分
  3. 关闭Visual Studio并关闭所有开发进程:devenv, mspdbsrv, vcpkgsrv, msbuild, msvsmon, vshub, vstest
  4. 删除方案的.suo, .ncb, .VC.db, .VC.VC.opendb文件以及.vs目录,这有时会导致问题
  5. 删除项目设置文件,例如YourProjectName.vcproj.DOMAINNAME.LOGINNAME.userYourProjectName.csproj.user。设置文件名称取决于您使用的项目类型
  6. 对于x64环境,请运行"C:\Program Files\Microsoft Visual Studio [vs_version]\Common7\IDE\devenv.exe" /setup"C:\Program Files (x86)\Microsoft Visual Studio [vs_version]\Common7\IDE\devenv.exe" /setup
  7. 在某些复杂情况下,删除用户设置可能有所帮助,这些设置位于主目录%USERPROFILE%\AppData\[Local|Roaming]\Microsoft\VisualStudio[vs_version]和注册表HKCU\SOFTWARE\Microsoft\VisualStudio[vs_version]

这应该将所有内容重置为初始状态。如果仍然无法正常工作,则有其他工具可用于调查。下载Process Explorer,当IDE冻结时,启动Process Explorer,找到devenv进程,双击它并转到Threads选项卡。检查在冻结的情况下哪个线程具有最大的切换增量,双击它并获取顶部函数的名称(或偏移量)。这将提供额外的信息。

此外,在控制面板的“添加或删除程序”向导中修复Visual Studio有时会有所帮助。


2

我在2017年遇到了这个问题。我以管理员身份运行VS 2017,然后它就可以正常工作了。


0
在我的特定情况下,我尝试了许多其他答案,但都没有成功。结果发现调用这个东西会挂起调试器:
Log4NetExtensions.AssertFail("Error");

我通过打开调试窗口下的线程窗口[ 调试 > 窗口 > 线程 ]并单击当前线程以浏览它挂起的代码行,最终将问题缩小到了这一行代码。


0

我在 VS 2017 (15.8) 中遇到了这个问题。升级到最新版本(当时是 15.9)解决了这个问题。


0

看起来VS在幕后做了很多事情,并将项目特定文件放在App Data和其他地方。我有这样的经历:我有一个项目,在两个不同的目录中有两组相同的代码:一个用于生产,一个用于开发。开发项目在调试时开始挂起,生产项目没有。尝试了各种设置和删除.suo文件,但没有帮助。所以我重命名了开发版本所在的目录,咔嚓一声,一切都可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接