Visual Studio 2013在启动

时间:2015-09-15 10:16:00

标签: c# visual-studio exception visual-studio-2013

我刚刚在一台新笔记本电脑上安装了VS 2013 pro,当我尝试打开一个现有项目或创建一个新项目时,它无法加载。然后我在新版本的调试器中打开它并得到这些错误。

打开现有项目后,我得到了

System.AccessViolationException was unhandled
Message: An unhandled exception of type 'System.AccessViolationException' occurred in Microsoft.VisualStudio.Shell.UI.Internal.dll
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Microsoft.VisualStudio.Shell.UI.Internal.pdb contains the debug information required to find the source for the module Microsoft.VisualStudio.Shell.UI.Internal.dll
Try one of the following options: - Change existing PDB and binary search paths and retry

当我尝试创建一个新项目时,我得到了类似的错误

System.AccessViolationException was unhandled
Message: An unhandled exception of type 'System.AccessViolationException' occurred in Microsoft.VisualStudio.TemplateWizard.dll
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

    Microsoft.VisualStudio.TemplateWizard.pdb contains the debug information required to find the source for the module Microsoft.VisualStudio.TemplateWizard.dll
    Try one of the following options: - Change existing PDB and binary search paths and retry

我还注意到VS正在它上面的文件夹中创建解决方案文件夹和.sln文件,但是没有,解决方案文件夹在崩溃后为空

我不知道为什么会发生这种情况,但似乎与安装有关,或者路径信息可能与以前的安装混淆。 (在安装2013 pro之前安装了VS 2013 shell)

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

备份您的代码。只是尝试删除.pdb文件并重新加载项目。 试一试。

答案 1 :(得分:0)

显然有些人here通过更改此设置解决了这个问题:

Tools menu ->Options -> Debugging -> General -> Uncheck this option "Suppress JIT optimization on module load"

关于该链接的其他建议:

  1. 尝试启用所有优化,在调试器下运行程序,然后查看是否发生错误。 (通常在调试模式下关闭所有优化,以便更容易进行调试。)这将至少为您提供一种在有更多调试信息时重现错误的方法。老老实实地赢得了很多帮助,因为当你崩溃时,破坏内存的方法调用早已不复存在。

  2. 查看您正在调用的所有非托管代码:COM对象,C / C ++ DLL,Win32调用等。检查所有非托管代码的P / Invoke签名和COM互操作thunk以验证它们& #39;重新纠正。不要相信你在网上找到的P / Invoke签名。他们并不总是正确的。验证您的数据类型和参数排序是否正确。

  3. 尝试删除非托管代码(存根调用)并查看问题是否消失。如果是,请调查组件以验证它没有内存泄漏。 (请注意,在重新安排代码时,您可能只是掩盖了问题。)

  4. 尝试在Compuware BoundsChecker之类的非托管内存检查器下运行代码,它将查找内存泄漏和访问冲突。这可能会给你一些关于哪些非托管组件行为不端的提示。