我看到了很多类似的问题,但我认为我不是在重复。这是我的情况:我有三个解决方案正在使用。A可以正常工作,但是当我尝试加载B或C时,VS 2010在加载解决方案后不久就崩溃了,特别是在我尝试从解决方案资源管理器中打开文件后。
我尝试过以下方法:
- 通过工具->选项->加载项/宏安全性禁用所有加载项和宏,然后取消选中两个相关复选框。
- 删除我的.suo文件。
- 重新启动我的机器
- 以管理员身份运行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崩溃。
var x = __arglist(1, 2);
。有人可能会说我自找麻烦,因为我玩弄未记录的功能,但我认为崩溃IDE有点过分了。有一件事可以肯定,我现在绝对不再对未记录的功能感到兴奋了。 :P - GrandOpener