Visual Studio 2010在加载解决方案时崩溃

11

我看到了很多类似的问题,但我认为我不是在重复。这是我的情况:我有三个解决方案正在使用。A可以正常工作,但是当我尝试加载B或C时,VS 2010在加载解决方案后不久就崩溃了,特别是在我尝试从解决方案资源管理器中打开文件后。

我尝试过以下方法:

  1. 通过工具->选项->加载项/宏安全性禁用所有加载项和宏,然后取消选中两个相关复选框。
  2. 删除我的.suo文件。
  3. 重新启动我的机器
  4. 以管理员身份运行VS 2010

这是我的事件查看器中的错误信息:

故障应用程序名称: devenv.exe, 版本: 10.0.30319.1, 时间戳: 0x4ba1fab3 故障模块名称: cslangsvc.dll, 版本: 10.0.30319.1, 时间戳: 0x4ba20c61 异常代码: 0xc0000005 故障偏移量: 0x0024b651 故障进程 ID: 0x1408 故障 应用程序启动时间: 0x01cbddd78972584a 故障 应用程序路径: c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe 故障模块路径: c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\VCSPackages\cslangsvc.dll 报告 ID: cd32c352-49ca-11e0-b3d8-0026b9c2aa7e

编辑

这是一个包含两个项目的解决方案->一个win表单项目和一个控制台项目。都用C#写的。

解决方案

事实证明,在我的解决方案中有一些愚蠢(或者说愚蠢?)的代码导致VS变得疯狂。实际上,这个代码本来就不应该在那里,我只是为了无聊而编写的。

另外,如果你想对某个你不喜欢的人进行恶意攻击,请在他们的解决方案中插入以下代码,并坐等乐趣:

namespace System {
    public partial class Boolean { }
}

我将这段代码放入第一个解决方案中,但在构建后它却崩溃了。我想这个崩溃和我刚刚编写的代码无关,于是我将其放入我的第二个解决方案中以查看是否可以扩展Boolean而不使用扩展方法,然后因为VS仍在崩溃而感到愤怒。我从未想过这段代码可能会导致VS崩溃。


我曾经遇到过糟糕的XAML引起的问题(是的,我知道听起来很奇怪)。方案B和C是否实际编译过?(尝试使用MSBuild查找)。修复任何编译错误,然后再次尝试。 - vcsjones
我认为我们无法帮助您解决这个问题。我建议向微软提交错误报告。 - DarkDust
每次发生崩溃时,您打开的是同一个文件(或文件类型),还是可以是任何一个项目中的随机文件? - Simen S
这是同样的两个项目。我能在这些项目中找到什么来查看是什么导致我的IDE崩溃? - Adam Rackis
就在刚才,我也遇到了完全相同的问题,解决方法类似,但对我来说是另一行“愚蠢”的代码。我想在这里提供一个例子,以防其他人也遇到同样的问题。具体而言,对我来说是 var x = __arglist(1, 2);。有人可能会说我自找麻烦,因为我玩弄未记录的功能,但我认为崩溃IDE有点过分了。有一件事可以肯定,我现在绝对不再对未记录的功能感到兴奋了。 :P - GrandOpener
7个回答

14

尝试通过工具 -> 扩展管理器禁用所有扩展程序。我曾经遇到过某些项目中扩展程序会导致 Visual Studio 崩溃。

或者,尝试在安全模式下运行 VS:devenv.exe /SafeMode


1
哇,两个都没用。我的天啊。不过还是谢谢你的回答+1。 - Adam Rackis
你尝试在另一台机器上加载该解决方案了吗?也许你的安装有些损坏。 - Michael

5

我按照以下顺序尝试了以下方法:

  1. devenv.exe /resetsettings,devenv.exe /resetskippkgs(无效)

  2. devenv.exe /safemode(告诉我产品版本无法打开.ccproj类型的文件。但是没有解决方案可行)

  3. 重命名了.user和.suo文件(无效)

  4. 安装了与C#开发有关的所有服务包。

  5. 使用“修复/重新安装”选项“重新安装”VS2010(无效)

  6. 卸载VS2010,然后重新安装(这是我的解决方案,尽管很多人尝试了这种方法并失败了。可能是因为这是我的最后一招。)


1
创建另一个解决方案,并将现有项目添加到新的解决方案中。由于设计师的原因,VS经常崩溃。您可以通过编辑现有插件来调试Visual Studio。还可以尝试检查解决方案中每个项目的csproj文件。 - profimedica
这是我做的第一件事情,但它让我失败了。 - Yoosaf Abdulla
我创建了一个工具来备份和恢复我的当前项目和 csproj 文件。从那以后,我再也没有遭遇黑屏的经历了。因此,最好的方法是备份您的文件。 - profimedica
不错的建议 @yoosafinpace - 我刚刚通过使用 devenv.exe /resetsettings 修复了崩溃的 Visual Studio 9。我无法打开任何解决方案。这是在我卸载 Visual Assist X 试用版后发生的。尝试过“修复”但没有成功,然后在这里找到了你的答案。感谢你记录下你的过程。第一步对我有用。 - paddy

2

我遇到了类似的问题,VS2010在加载特定解决方案时崩溃了。原来是代码中有一行不完整的语句导致了VS2010的混乱。当我将该行注释掉后,一切都正常了。

有问题的那一行代码是:

getCommonResourcesDirectory([out, retval] BSTR* );

2

如果这是一个 C++ 项目,尝试删除任何挂在周围的 PDB 文件 - 这些文件有时会损坏并导致崩溃。


这只是一个平凡无奇的解决方案,包括一个C#窗体应用程序和一个控制台应用程序,没有更多的东西 :( - Adam Rackis

1
在解决方案加载期间,如果/当测试工具(Test View 窗口等)加载抛出异常的 DLL 时,Visual Studio 2010 也可能发生崩溃。
我的具体情况是一个 C++/CLI 测试项目,在其中一个全局变量构造期间抛出了异常,该构造函数在 DLL INIT 期间被调用。(这是由于传递给 std::tr1::regex 类构造函数的无效模式字符串引起的异常。)
这是一个相当微妙的问题,因为您不希望您的代码在执行测试之前运行;但在 C++ 全局变量的构造函数中,它会在 IDE 构建后和解决方案加载时立即运行。
我怀疑 Visual Studio 2010 测试管理器组件没有在可能的情况下将 Dll 加载调用包装在 try/catch 块中。

0
将导致 Visual Studio 崩溃的窗体设置为主窗体进行加载。然后从“DEBUG”菜单中以调试模式启动该窗体。

0

我知道这是一个旧帖子,但今天在解决同样的问题时,我想到了另一个解决方案。在我的情况下,VS试图使用CSharp表单编辑器而不是CSharp编辑器打开源代码文件。

当发生这种情况时,代码开始运行(我看到了我的启动画面),但出现了错误(我看到了关于找不到某些硬件的错误消息),导致错误关闭了VS。尝试重新打开项目会让VS再次打开*.cs文件,从而创建一个令人沮丧的崩溃循环。

删除*.suo文件后,我能够打开项目。然后在“解决方案资源管理器”中,右键单击代码文件并选择“打开方式”。在对话框中,我更改了默认设置,一切都很好,包括看到之前找不到的硬件。


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