Visual Studio 2008中解决方案加载缓慢

5

我正在处理一个有55个项目的ASP.NET 3.5项目,当我在Visual Studio 2008中打开这个解决方案时,需要超过一分钟的时间来打开,每个项目大约要1秒钟。然而,如果我在打开解决方案之前断开网络电缆,那么只需要大约15秒钟!有什么想法可以解决这个速度变慢的问题吗?

8个回答

5

曾经在使用Visual Source Safe时,我也遇到过这个问题。

如果你的解决方案处于源代码控制下,可能是源代码控制插件正在请求更新。


2

你应该进行一些调查,启动Wireshark,在相关接口上开始抓包并查看流动的流量。


谢谢你提供关于Wireshark的提示。我已经下载并运行了它。如果我正确地解释结果,那么由于Visual Studio所产生的唯一流量就是大量的DNS查询。我不知道它在查找什么,但我想来自名称服务器的响应缓慢可能会导致延迟。 - Paul Hyman
有没有可能是这个问题?http://dotnetjunkies.com/Newsgroups/microsoft.public.vsnet.ide/2004/3/29/97325.aspx - si618
抱歉,Paul,我复制了错误的链接...无论如何,报告的问题是VS中的最近使用(MRU)列表包含一个指向不再存在的网络资源的链接。 说明:http://weblogs.asp.net/achang/archive/2004/05/04/125645.aspx 如何清除: http://blogs.msdn.com/benko/archive/2009/01/05/how-to-clear-out-the-mru-list-in-vs-2008.aspx - si618
谢谢你的建议。不幸的是,我已经从注册表中删除了这些条目,但没有任何改变。看来在启动Visual Studio之前我只能继续拔掉网络电缆了。 - Paul Hyman
我认为你关于DNS查询的第一个评论需要进一步调查,虽然我不是网络专家,但是经过一些努力,你应该能够追踪到它。祝你好运! - si618

1
我上周也遇到了同样的问题(五年后!!)。这是由一个巨大的.suo文件引起的(几乎有400 Mb),删除它可以解决问题。

1

我能用问题回答问题吗?如何让VS不仅在加载时不崩溃,而且在短短60秒内快速加载呢?

当项目数量达到10-12个时,Visual Studio的编译时间变得难以忍受,当项目数量达到5-8个时,Resharper将会崩溃。IDE占用了大量的内存,即使使用多个VS实例打开更多的项目也通常不是一个选项。

总之,这都与内存使用有关,而那个奇怪的项目可能正在做这件事,例如文件最多的那个项目。


没有网络连接时,它大约需要15秒钟才能加载。根据 Process Explorer 的显示,使用虚拟大小为 750,000K 进行构建后,Visual Studio 的工作集大小约为 300,000K。因此,拥有至少 2GB 的内存非常有帮助。问题不是由某个特定的项目引起的。我可以观察底部的消息,看到它加载每个项目时都需要大约相同的时间。 - Paul Hyman

0

我在一台没有互联网连接的开发机器上遇到了这个问题,后来发现问题与IE的Internet选项中的一个设置有关:

控制面板 -> Internet选项 -> 高级 -> 安全 -> 检查发布者证书吊销

确保取消勾选此项后,我的解决方案再次快速加载。


0

一个解决方案中有55个项目

哇,我无法想象需要那么多项目的解决方案是什么类型的。答案可能是您的源代码控制提供程序需要刷新每个项目的状态,这需要时间。

对于像Subversion这样的编辑-合并-提交版本控制系统,此操作不会发生。尝试暂时从整个解决方案中删除源代码控制,以查看是否是罪魁祸首。


0
如果您的解决方案已附加到源代码控制,则它正在尝试加载符号并验证您已经检出哪些项目。因此,如果您的连接速度较慢,则通常更快将解决方案脱机。

http://www.tmgirvin.com/2009/03/working-offline-with-visual-studio-2008-and-tfs.html

编辑 我看过的另一个解决方案是,创建以下三个解决方案: _webTier.sln _database.sln _build.sln (其中“is your project name”是你的项目名)

每个解决方案都是整个项目的一个自给自足的部分。如果你只需要加载webtier解决方案而不需要数据库或移动项目的部分,那么你就可以只打开webtier解决方案。

构建解决方案包含了所有需要构建的内容,它需要很长时间来加载。


0

我记得几年前我的一个同事也遇到了类似的问题(解决方案要小得多,而且是在VS2003中)。我记不清细节了,但我想它与本地ASPNET用户帐户有关(或者说该帐户不存在)。不过我不确定...

顺便说一下:我通常发现每个解决方案中大约有一把手的项目(通常一个解决方案会生成一个或两个用于生产代码的程序集),然后同时运行几个Visual Studio实例更有效率。在同一个解决方案中拥有50多个项目感觉就像在寻找问题。

可能您有其他依赖关系,只是想分享我的想法。


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