项目无法打开,Visual Studio 崩溃。

37

我的最后一步是在用户控件中添加了一个计时器,用于更新表单颜色。现在每次打开项目,它都会加载并显示“Visual Studio已停止工作”的消息。

我发现即使在设计模式下,Visual Studio也会“运行”计时器,所以我认为这可能导致问题,因此我从designer.cs中删除了计时器,然后重命名了Visual Studio正在打开的所有文件,但仍然崩溃。所有其他项目都正常工作。这已经是第四次发生这种情况了。我使用的是Visual Studio 2012 Ultimate。请给出建议。


尝试将另一个 Visual Studio 附加到即将崩溃的那个(在打开崩溃项目之前附加)。也许你会看到崩溃发生的地方。这可能只是无从下手,但值得一试。 - Matthew Watson
@Frank59 我没有使用 ReSharper。 - Kristian
3
你需要打开两个 Visual Studio 窗口,然后在其中一个窗口中选择“调试 | 附加到进程”,找到另一个 Visual Studio 窗口并点击“附加”,接着在这个被附加的 Visual Studio 窗口中打开导致崩溃的项目。请注意不要改变原意。 - Matthew Watson
12
我不知道为什么人们投票将此关闭为离题。这是关于使用IDE编写代码的问题,作为程序员工具在这里完全合适。 - Ken White
@valverij 谢谢,问题已解决!!请将您的评论添加为答案,我会将其标记为解决方案。 - Kristian
显示剩余4条评论
10个回答

94

听起来像是当Studio崩溃时,您的解决方案设置被损坏了。您可以通过删除解决方案的*.suo文件来重置它们:

  1. 确保您可以查看隐藏文件
  2. 在Windows Explorer中找到您的解决方案。它应该是一个*.sln文件
  3. 在同一文件夹中应该有一个隐藏的*.suo文件。删除它。

这将重置所有与您的解决方案相关的设置,包括您打开的窗口。

在未来,您可以通过使用Form.DesignMode属性(从System.ComponentModel.Component继承)将代码包装在if中,以防止设计师中执行它:

if(!this.DesignMode)
{
    /* put code to be excluded from the designer here */
}

针对VS 2017和2019的更新

在VS 2017和2019中,*.suo文件已经移动到解决方案目录下的.vs文件夹中:

~/[解决方案目录]/.vs/[解决方案名称]/.suo

您可以直接删除整个.vs文件夹来重置该解决方案的本地设置。


5
如果Visual Studio在所有项目中崩溃,甚至在创建新项目时也崩溃了,该怎么办? - John Demetriou
3
看起来问题已经解决了。我在SolutionFolder.vs\SolutionName\v14中找到了suo文件。(使用VS 2015)。但是,我还删除了一个StyleCop.cache文件。在重命名后,我遇到了这个问题。 - Greg
2
在我的情况下是.vs文件夹。感谢@valverij。 - joepa37

36

对我来说,禁用Visual Studio扩展解决了问题。

工具 -> 扩展和更新 -> 已安装

在我的情况下,Web Essentials引起了问题。

希望这可以帮到您!


1
谢谢!在我的情况下,删除.suo文件没有解决任何问题,但是这个答案解决了问题 - 看起来另一个原因是当您从Web项目切换到其他项目时。 - Robert
这里救了我一个大头疼,伙计。非常感谢你的答案。 - user1017882
谢谢@branmantwo,直到我禁用了“Web Essentials 2013 for Update 4”包,我才能打开/创建新项目。 - Dev.Jaap
"Web Essentials"成为了受害者。这是一个已知的问题,他们会尽快修复吗? - Dhanuka777
这对我来说是答案,转向非 Web 开发使所有项目崩溃。删除 SUO 文件使项目重新打开,但是代码编辑器没有显示任何文本。禁用 Web Essentials 是解决方案。 - BobbyTables
只有在打开数据库项目时才会遇到这个问题。VS状态栏会显示“Web Essentials应用程序正在应用...”,然后它会让我的机器完全卡住!我不得不强制关机。禁用WE就可以解决问题。 - Captain Betty

12
如果您的计算机上安装有不同版本的Visual Studio,请打开那个版本。点击调试(Debug) -> 附加到进程(Attach To Process),选择另一个Visual Studio 进程,应该只能看到一个,进程名称为devenv.exe。
现在在有问题的VS中重复出现该问题。它将在未崩溃的VS中停在异常处。
在我的案例中,异常看起来像这样:
未处理的类型“System.TypeLoadException”的异常发生在Microsoft.VisualStudio.Platform.VSEditor.dll中。 附加信息:程序集“JetBrains.Platform.UI, Version=104.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325” 中类型“JetBrains.UI.SrcView.ContextNotifications.ContextNotificationControl”的方法“Connect”没有实现。
我通过运行Resharper安装程序并设置修复选项来解决它。

2
我刚刚用两个VS2015实例测试了一下,运行良好。 - C4d

4

关闭所有VS 2012实例。 以管理员模式打开VS 2012(只有VS 2012,没有解决方案),然后使用该实例的VS尝试打开项目*.sln。

应该正确打开。对我来说,只有这个解决方案可行,不管是删除*.suo文件还是禁用扩展和更新都不行。

希望这可以帮到您。享受吧。 有什么阻碍吗 :)


3

确保文件权限一致。如果无法访问binobj文件夹,Visual Studio可能会崩溃。在文件属性->安全性->高级中设置文件所有权和权限。


嘿,只是一个离题的提醒,你个人资料页面中的所有图片都无法显示。 - Shadow The Spring Wizard

2
清除我的TFS缓存对我有用。
操作步骤如下:
1.关闭客户端机器上所有Visual Studio实例
2.手动删除相应的TFS客户端缓存文件夹,然后启动Visual Studio
需要手动删除的相应TFS文件夹如下:
TFS 2017: %localappdata%\Microsoft\Team Foundation\7.0\Cache\
TFS 2015: %localappdata%\Microsoft\Team Foundation\6.0\Cache\
TFS 2013: %localappdata%\Microsoft\Team Foundation\5.0\Cache\
TFS 2012: %localappdata%\Microsoft\Team Foundation\4.0\Cache\

2

我认为在VS 2017中已经没有suo文件了。

但是有一个隐藏的.vs文件夹。尝试删除它,对我有用 :)


0
我安装了 Newtonsoft.Json Fixer 扩展,它对我很有效。我连接了另一个 VS,发现缺少的文件是 Newtonsoft.Json,我的项目没有引用它,当我找到这个扩展时,我想试一试。

Newtonsoft.Json Fixer extension


0

让我介绍一下我的情况,当我打开一个带有DevExpress组件的解决方案时,Visual Studio崩溃了,而其他解决方案都可以正常打开,直到我尝试在表单上添加DevExpress组件。

EventViewer指出问题与DevExpress dll有关。我修复了DevExpress安装程序,问题得到解决。某些东西破坏了我的DevExpress安装程序。这在我使用他们的组件20年中只发生过一次,我不知道问题最初是什么导致的。

通常情况下,如果我无法打开单个解决方案,我会删除.vs文件夹或.suo文件,问题通常就会解决。有时清除resharper缓存也可能有所帮助。


0

由于我无法回复关于扩展的其他评论,这里是导致我在Visual Studio 2019上出现此问题的扩展名

MySQL for Visual Studio

我最近在我的电脑上安装了MySQL,猜想它可能会自动为Visual Studio安装一个版本,但确实不确定。

打开你的其中一个项目 -> 在顶部栏中点击 扩展名 -> 前往 已安装 -> 禁用 MySQL for Visual Studio(或者像其他评论所建议的那样,禁用可能导致此问题的任何其他扩展)-> 重新启动Visual Studio。


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