Visual Studio中大型项目加载时间过长

6
有没有办法在Visual Studio 2008中关闭智能感知?我知道可以删除C++中的一个DLL来关闭智能感知,但这对于C#无效。我也知道关于首选项的设置,但那只是关闭了可视化显示。我想要完全关闭智能感知,所以它不会扫描我的代码。更新10/14/09:Eric很好心地看了一下,所以我给他发送了一些日志信息。我们有结果时会在此发布解决方案。更新:更新标题以反映线程的变化方向。相关问题:在Visual Studio 2008中为单个项目关闭Intellisense

18
为什么?它提供了有用的信息。如果你不想要智能感知,你可以在记事本中编程,然后将其复制/粘贴到Visual Studio中。 :-) - George Stocker
3
如果您想要代码高亮和缩进等功能,类似于vim、emacs、notepad2和notepad++这样的文本编辑器可能会适合您。 - Jim Deville
8
我怀疑你要么诊断问题出错了,要么遇到了分析器中的一些奇怪错误。我们不应该被阻塞数分钟。你能否给我发送电子邮件,告诉我更多关于你的场景以及为什么要将其诊断为智能感知问题?你可以通过我的博客页面blogs.msdn.com/ericlippert给我发送邮件。谢谢! - Eric Lippert
2
我们曾经处理过比这些类别大小更大的项目,它们加载所需时间只是其中一小部分。因此,这里可能有什么问题。也许不一定是智能感知的问题。你尝试过物理移动文件吗?也许它们变得极度碎片化或者出现了其他问题。 - Foxfire
1
谁愿意打赌源代码在网络共享上? - Joel Coehoorn
显示剩余17条评论
4个回答

9
VS团队为我查看了这个问题,并发现了Intellisense的问题。以下是他们的描述:
“看起来你给我的这两个文件都包含一个名为EntityPropertyDescriptors的静态部分类的一部分,我猜其他500个文件也都是如此。问题在于,当我们建立IntelliSense缓存时,每次解析其中之一时,我们会发现它有一个静态类,并决定查看该静态类是否有任何扩展方法。为了查找扩展方法,我们将遍历每个部分中的每个方法,以查看它是否是扩展方法。这导致我们必须重新解析每个文件,以查看该类型是否有任何扩展方法。”
他们在VS2010中发现了类似的问题,但现在正在修复。不幸的是,他们不打算在VS2008中修复它,因此我们只能采用将所有部分类放入单个文件的解决方法。它们仍然可以是部分类,但必须在同一个物理文件中以解决问题。
将所有部分类合并到单个文件后,这个问题项目的加载时间从30分钟降至约10秒。
非常感谢Eric Lippert和Kevin Pilch-Bisson帮助我解决了这个问题。

3
不用谢。再次感谢您提供这个信息。我很高兴我们能够为 VS 2010 解决这个问题。 - Eric Lippert

2

1
在“工具”>“选项”>“文本编辑器”>“C#”中,有一个智能感知部分,看起来可以满足您的需求。

抱歉,我没有注意到你关于了解偏好的评论。 - Mathias
这是我已经尝试过的首选项。它只关闭了显示,而没有关闭扫描。请注意:http://msdn.microsoft.com/en-us/library/ecfczya1(VS.71).aspx 上面写道,即使关闭了Intellisense,也可以通过按键来使用,因此它仍然在扫描代码。 - Brad Irby

1

你尝试过清理 Visual Studio 创建的所有临时文件吗?有时这些文件可能会损坏,特别是如果你从 VS 2005 迁移过来的话,这种情况可能会更高。

关闭你的解决方案,查找所有的 *.suo 和 *.ncb 文件并将它们删除/重命名,然后重新打开解决方案。

还有一件事要确保:是否安装了任何第三方插件?尝试使用 /SafeMode 命令行选项启动 VS 的安全模式。


安全模式是个好主意。虽然加载时间仍然很长,但内存使用率降低了许多。有趣…… - Brad Irby
我之前在mem备注中犯了一个错误 - 我在8GB的台式机上运行了原始测试,在2GB的笔记本电脑上运行了/safemode测试。 - Brad Irby

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