Visual Studio 2010崩溃解决方案负载

时间:2011-03-08 21:40:42

标签: visual-studio-2010

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

我尝试了什么:

  1. 禁用所有加载项和宏工具 - >选项 - >加载项/宏安全性然后取消选中两个相关的复选框

  2. 删除我的.suo文件。

  3. 重新启动我的机器

  4. 以管理员身份运行VS 2010

  5. 以下是我的活动查看器的错误

      

    错误应用程序名称: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 { }
    }
    

    我将此代码放入第一个解决方案,并在构建后观看它崩溃。我屁股 - 我的刚编写的代码未经处理,并继续将其放入我的第二个解决方案中,看看是否可以在没有扩展方法的情况下扩展布尔值然后生气,VS还在崩溃。那段代码可能会崩溃VS从来没有想到过。

7 个答案:

答案 0 :(得分:14)

尝试通过工具停用所有扩展程序 - >推广经理。我在某些项目中只有视频工作室的扩展名崩溃了。

或者尝试在safemode中运行VS:devenv.exe / SafeMode

答案 1 :(得分:5)

我按照我执行的顺序尝试了以下内容:

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

  2. devenv.exe / safemode(告诉我产品版本无法打开.ccproj类型。但没有反制解决方案有效)

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

  4. 安装VS2010的所有服务包,即使它们与C#开发有很大关系。

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

  6. 卸载VS2010然后安装(这是我的解决方案,即使他们中的很多人尝试了这个并且失败了。可能因为这是我的最后手段。)

答案 2 :(得分:2)

如果它是一个C ++项目,请尝试删除任何闲置的PDB文件 - 这些文件有时会被破坏并导致崩溃。

答案 3 :(得分:2)

我遇到了类似的问题,VS2010在加载特定解决方案时崩溃了。 事实证明,代码中的一行不完整导致VS2010无法正常运行。当我评论这条线时,一切都还好。

有问题的一行是:

getCommonResourcesDirectory([out, retval] BSTR* );

答案 4 :(得分:1)

如果/当测试工具(测试视图窗口等)加载在初始化期间抛出异常的DLL时,在解决方案加载期间,Visual Studio 2010中也可能发生崩溃。

我的具体案例是一个C ++ / CLI测试项目,其中一个全局变量在构造期间抛出异常,该构造函数在DLL INIT期间被调用。 (由于传递给它的无效模式字符串,这是std :: tr1 :: regex类构造函数抛出。)

这是一个非常微妙的问题,因为在执行测试之前,您不希望代码运行;但是在C ++全局变量的情况下,它在构建和解决方案加载后立即由IDE运行。

我怀疑Visual Studio 2010测试管理器组件没有在可能的try / catch块中包装Dll加载调用。

答案 5 :(得分:0)

设置将Visual Studio作为要加载的主窗体崩溃的表单。然后从DEBUG菜单中的debug mod中启动表单。

答案 6 :(得分:0)

我意识到这是一篇很老的帖子,但是当我处理同样的问题时,我想出了另一个解决方案。就我而言,VS试图使用CSharp表单编辑器而不是CSharp编辑器打开源代码文件。

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

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