为什么在Visual Studio中加载我的解决方案需要太长时间?

时间:2013-08-21 14:39:33

标签: visual-studio-2010 visual-studio visual-studio-2012 ankhsvn productivity-power-tools

我们有一个非常大的解决方案,包含200多个项目和数千个文件。尽管如此,解决方案过去常常在Visual Studio 2010和2012中加载。但是,在将整个SVN存储库复制到另一个位置后,加载和关闭解决方案突然耗费了很长时间。 (我在这里谈论30-60分钟!)

10 个答案:

答案 0 :(得分:66)

我自己找到了一个解决方案,我想在这里分享一下,希望这可以节省相当多的研究时间并盯着“准备解决方案......”对话框。

使用Process Monitor检查devenv.exe进程时,我发现访问.svn目录非常繁忙。这就是我所做的(这在某种程度上解决了这个问题):

  1. 杀死Visual Studio
  2. 在不加载解决方案的情况下打开Visual Studio
  3. 禁用AnkhSvn作为源代码管理插件(工具 - >选项 - >源代码管理 - >插件选择 - >无)
  4. 在Productivity Power Tools中禁用“Document Well 2010 Plus”(VS2010)或“自定义文档”(VS2012)(工具 - >选项 - >生产力电动工具) - 我在某处读到了它可能也有帮助...
  5. 关闭Visual Studio
  6. 删除解决方案的*.suo文件。它与解决方案本身位于同一文件夹中。 注意:您将失去一些解决方案的设置,例如当前打开的文件,断点,书签,当前解决方案配置和平台(例如Debug x86)等。
  7. 重新启动Visual Studio
  8. 加载解决方案 - 现在要快得多!
  9. 关闭Visual Studio
  10. 在不加载解决方案的情况下打开Visual Studio
  11. 重新启用AnkhSvn和“Document Well”
  12. 重新启动Visual Studio
  13. 打开解决方案 - 它仍然可以在几秒钟内加载!
  14. 我不知道这些步骤中哪一个真正解决了这个问题。可能并非所有这些步骤都是必需的,但我不想重现问题以找出可能省略的步骤。 :)

答案 1 :(得分:5)

这些都没有帮助过我,我做了什么...我使用ProcMon的sysinternals,过滤devenv,我看到了很多fussionlog的条目。我在几周之前启用了fussionlog以进行调试,并没有考虑禁用它。我只需要禁用fussionlog,解决方案就会更快打开。

答案 2 :(得分:3)

您可以在安全模式下打开Visual Studio,然后在打开项目后检查插件和源代码管理设置。 安全模式意味着“启动Visual Studio,仅加载默认环境和服务。”

如何:

id = 1 words = 11 phrases = 1 

id = 2 words = 11 phrases = 1 

id = 2 words = 28 phrases = 2 

或根据你的路径

devenv /SafeMode 

来源:https://msdn.microsoft.com/en-us/library/ms241278.aspx

答案 3 :(得分:1)

fwiw,我意识到这是一个迟到的条目,但我发现简单地删除(删除)我的大量断点解决了过多的加载时间和编译时间。 此操作将.suo文件的大小从214MB减少到977KB。让VS处理.suo文件本身。 现在编译和加载需要<对于35个项目的解决方案,1分钟而不是5-10分钟。 Visual Studio 2012 Pro,更新4。

答案 4 :(得分:1)

在我的情况下,以下工作没有建议的任何干预步骤:

  1. 杀死Visual Studio。
  2. 直接启动Visual Studio(即不是来自.sln文件)。
  3. 然后,从Visual Studio中打开解决方案。
  4. 在我的情况下,只需要很快完成问题解决方案的加载,而无需我更改任何设置或删除任何文件。

答案 5 :(得分:0)

我尝试了上述内容,但它没有解决我的问题。

以下是我解决这个问题的方法,希望它对你们中的一些人也有用:

  1. 打开Visual Studio 2013,没有解决方案。
  2. 创建一个新的C#控制台应用程序并保存。
  3. 关闭Visual Studio。
  4. 重新打开在步骤2中创建的控制台解决方案。
  5. 关闭Visual Studio。
  6. 重新打开之前挂在“准备解决方案”对话框中的解决方案。我立刻开了,不再挂了。

答案 6 :(得分:0)

其他答案都不适合我。 CI编译时间很好,但在Visual Studio中加载我的解决方案花了将近两分钟。 VS然后运行得很好,直到我关闭并在下次打开解决方案。不同版本的VS都表现出相同的问题,安全模式和删除suo都没有帮助。

我最终按照http://geekswithblogs.net/akraus1/archive/2014/04/30/156156.aspx中的建议使用Windows性能记录器来检测VS并找到问题。通过查看" CPU使用率(采样)"下的Windows性能分析器部分并添加"堆栈(帧标签)"专栏,我能够深入研究devenv.exe的用法。

根据Microsoft.VisualStudio.Platform.WindowManagement.ni.dll 23次调用计算结果显示热门路径,最终Microsoft.VisualStudio.ServerExplorer.dllMicrosoft.VisualStudio.Data.Package.dll以下。这指向我在UI中查看Server Explorer并打开Data Connections选项卡。在那里,我发现数百个错误添加的连接来自调试web.config的ConnectionString部分。从web.config中删除那些项目可以将单个项目的负载从90秒减少到几乎即时。

答案 7 :(得分:0)

使用Visual Studio 2015,我最终创建了一个新的解决方案,添加了现有项目。

过去,从gehho的答案中删除* .suo是有帮助的,但在这种情况下并没有帮助我。解决方案根目录下的隐藏.vs文件夹中还有一个.suo文件。

Visual Studio 2015 Visual Studio 2015 is extremely slow

还有其他答案

答案 8 :(得分:0)

就我而言,这是由于 TFS 问题。它认为有超过 5000 个待处理的更改。

解决方法是强制 TFS 重新检查。转到团队资源管理器 -> 源代码管理资源管理器,并对具有待定更改的项目执行“获取最新信息”。对于已经匹配 TFS 的内容,Visual Studio 实际上不会将任何内容下载到您的 PC。对于与 TFS 不同的地方,Visual Studio 会通知您并要求您协调差异。

这是 VS 2019 专业版。

答案 9 :(得分:-1)

我最近(2021 年 3 月)遇到了这个问题,使用 VS 2019。加载文件(每个)实际上需要 30 多秒。 它只影响布局文件。我相信这可能与文件中的链接有关。我没有时间去调查他们。 但是,我写这篇文章是为了建议无论问题的原因是什么,一个简单的解决方案是右键单击该文件并使用记事本打开它以完成您的工作。