从Visual Studio启动WPF应用程序时,初始窗口加载非常缓慢

4
我有一个相对简单的WPF应用程序。每当我从Visual Studio 2012(在调试或发布模式下)启动它时,启动速度非常慢(可以需要几分钟)。存在一些自定义初始化工作(读取文件并从SQLite数据库加载数据),但应该在1秒内完成,因为直接点击Debug/myapp.exe文件启动应用程序时需要的时间不到1秒。
奇怪的是,如果我打断执行并立即继续(IDE中的“play”按钮),窗口将立即加载。如果我按F5“开始调试”,问题就会出现,但如果我按Ctrl + F5“无调试启动”,则会立即加载。
我正在使用x86模式下的.NET 4.5。
我尝试使用dotTrace性能分析器进行分析,但无法通过这种方式复制该问题(它将立即加载)。
你有任何关于可能导致这个问题的想法吗?

它只是在启动时慢还是之后也是,例如当您继续逐步执行代码时? - pbalaga
你安装了VS更新3吗? - pbalaga
你是否配置了符号服务器?这可能是调试器加载额外符号的原因。 - ta.speot.is
是的,我已经安装了VS更新3。我已经取消选中默认符号服务器。我有其他WPF项目,它们可以立即加载并共享大部分自定义初始化代码。 - Erwin Mayer
如果您之前已经勾选了符号服务器,则再次勾选可能不会有太大帮助:符号已经被下载。它们不需要重新下载。尝试清除符号缓存(如果不为空)并重新启动 VS。 - ta.speot.is
显示剩余2条评论
3个回答

2
可能导致这种缓慢的原因之一是打开了太多的WPF跟踪设置。如果是这个问题,您可以通过输出窗口查看项目启动时填充的信息来确认。
如果这是您的问题,您可以前往“工具>选项>调试>WPF跟踪设置”来调整跟踪设置。
一旦找到正确的部分,您可以关闭各种跟踪选项,应该会在启动应用程序时看到速度有所提高。

1
不幸的是,它们都已经关闭了,输出窗口中没有任何显示。 - Erwin Mayer

1

代码中可能设置了大量断点。打开 断点 窗口(调试->窗口)并将其全部关闭,以查看是否是原因。 或者更好的方法是,您可以从磁盘中删除 .suo 用户文件,该文件存储断点和会话设置。

另一个可能的原因是扩展出现故障。您可能希望尝试禁用一些插件,以查看是否效果更好。

另外,我记得我曾经遇到过,如果活动选项卡是图形窗口预览,则 WPF 应用程序从 VS 启动缓慢。


1
在我的情况下,问题是由于某种原因,VS没有缓存System.Windows.Interactivity.dll的符号,每次启动调试会话时它们都会从服务器下载。导航到 工具 -> 选项 -> 调试 -> 符号 并选择带有空模块列表的 "仅指定的模块" 解决了延迟问题。

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