我们有一个非常大的解决方案,包含 200 多个项目和数千个文件。尽管如此,该解决方案在 Visual Studio 2010 和 2012 中的加载速度非常快。但是,在将整个 SVN 存储库复制到另一个位置后,加载和关闭解决方案突然花费了极长的时间。(我在这里说的是 30-60 分钟!)
11 回答
我自己找到了一个解决方案,我想在这里分享它,希望它可以节省一些人的研究时间并盯着“准备解决方案......”对话框。
当使用进程监视器检查 devenv.exe 进程时,我发现它正忙于访问.svn
目录。这是我所做的(这以某种方式解决了问题):
- 杀死 Visual Studio
- 在不加载解决方案的情况下打开 Visual Studio
- 禁用 AnkhSvn 作为源代码管理插件(工具->选项->源代码管理->插件选择->无)
- 在 Productivity Power Tools(工具->选项->Productivity Power Tools)中禁用“Document Well 2010 Plus”(VS2010)或“Custom Document Well”(VS2012)-我在某处读到它,它可能也有帮助......
- 关闭 Visual Studio
- 删除解决方案的
*.suo
文件。它与解决方案本身位于同一文件夹中。注意:您将丢失解决方案的一些设置,例如当前打开的文件、断点、书签、当前解决方案配置和平台(例如调试 x86)等。 - 重新启动 Visual Studio
- 加载解决方案 - 现在速度更快了!
- 关闭 Visual Studio
- 在不加载解决方案的情况下打开 Visual Studio
- 重新启用 AnkhSvn 和“文档井”
- 重新启动 Visual Studio
- 打开解决方案 - 它仍然在几秒钟内加载!
我不知道这些步骤中的哪一个实际上解决了问题。可能并非所有这些步骤都是必需的,但我不想重现该问题以找出可以省略哪些步骤。:)
这些都没有帮助我,我做了什么......我用 sysinternals 的 ProcMon 观看,过滤 devenv,我看到了很多 fussionlog 条目。几周前,我出于调试目的启用了 fussionlog,但并没有考虑禁用它。我只需要禁用 fussionlog 并且解决方案打开得更快。
您可以在安全模式下打开 Visual Studio,然后在打开项目后检查您的插件和源代码管理设置。安全模式意味着“启动 Visual Studio,仅加载默认环境和服务”。
如何 :
devenv /SafeMode
或者根据你的路径
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /SafeMode
在我的情况下,以下工作没有任何建议的干预步骤:
- 杀死 Visual Studio。
- 直接启动 Visual Studio(即,不是从 .sln 文件)。
- 然后,从 Visual Studio 中打开解决方案。
就我而言,这就是使问题解决方案快速加载所需的全部内容,而无需我更改任何设置或删除任何文件。
fwiw,我意识到这是一个较晚的条目,但我发现简单地删除(删除)我的大量断点解决了过多的加载时间和编译时间。此操作将 .suo 文件的大小从 214MB 减少到 977KB。让 VS 自己处理 .suo 文件。对于具有 35 个项目的解决方案,编译和加载现在需要不到 1 分钟而不是 5-10 分钟。Visual Studio 2012 专业版,更新 4。
其他答案都不适合我。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 个调用,最终低于 23 个Microsoft.VisualStudio.ServerExplorer.dll
调用Microsoft.VisualStudio.Data.Package.dll
。这让我在 UI 中查看服务器资源管理器并打开“数据连接”选项卡。在那里,我发现了数百个来自 debugweb.config
的 ConnectionString 部分的错误添加的连接。删除那些web.config
将单个项目的负载从 90 多秒减少到几乎即时。
我尝试了上述方法,但它并没有解决我的问题。
以下是我解决这个问题的方法,希望它也适用于你们中的一些人:
- 打开没有解决方案的 Visual Studio 2013。
- 创建一个新的 C# 控制台应用程序并保存它。
- 关闭 Visual Studio。
- 重新打开在步骤 2 中创建的控制台解决方案。
- 关闭 Visual Studio。
- 重新打开之前挂在“准备解决方案”对话框中的解决方案。我的立即打开,不再挂起。
使用 Visual Studio 2015,我最终创建了一个新解决方案,添加了现有项目。
从 gehho 的答案中删除 *.suo 过去有帮助,但在这种情况下对我没有帮助。在解决方案根目录的隐藏 .vs 文件夹中还有另一个 .suo 文件。
Visual Studio 2015 还有其他答案Visual Studio 2015 非常慢
就我而言,这是由于 TFS 问题。它认为有超过 5000 个未决更改。
解决方法是强制 TFS 重新检查。转到团队资源管理器 -> 源代码管理资源管理器,然后对有待更改的项目执行“获取最新”。对于已经匹配 TFS 的内容,Visual Studio 实际上不会将任何内容下载到您的 PC。对于 TFS 的不同之处,Visual Studio 会通知您并要求您协调差异。
这是 VS 2019 专业版。
我对项目加载缓慢有不同的原因。
我的情况是使用 Git,发现即使切换分支也比项目负载要慢。
解决方案:以管理员身份运行 Visual Studio
原因:Corporate 笔记本电脑的某些东西没有提供所需的 Git 工具访问权限(它无法识别 git 存储库正在使用中)。
我没有看到 Git 或我对任何项目文件或 Git 对象的个人访问有任何问题。
我最近(2021 年 3 月)遇到了这个问题,使用 VS 2019。加载文件(每个)需要 30 多秒。它只影响布局文件。我相信这可能与文件中的链接有关。我没有时间调查他们。但是,我写这篇文章是为了建议不管问题的原因是什么,一个简单的解决方案是右键单击该文件并使用记事本打开它以完成您的工作。