在Silverlight中启动调试会话需要很长时间

在Silverlight中启动调试会话需要很长时间,silverlight,performance,caching,debugging,symbols,Silverlight,Performance,Caching,Debugging,Symbols,在我的SL4 LOB应用程序中,我可能已经达到了F5 1000x或更高,没有任何问题。突然,现在点击F5可能需要90秒才能引发应用程序的启动事件 我试图清除IE浏览器缓存,但没有任何帮助 我创建了一个新的导航应用程序,没有任何代码,点击F5,立即启动,很好。然后,我开始从我的SL4 LOB应用程序向新创建的导航应用程序添加相同的程序集引用。每次添加引用后,我都会点击F5以确保应用程序能够立即启动;到目前为止还不错 唉,我终于找到了System.Windows.Controls.Data.Tool

在我的SL4 LOB应用程序中,我可能已经达到了F5 1000x或更高,没有任何问题。突然,现在点击F5可能需要90秒才能引发应用程序的启动事件

我试图清除IE浏览器缓存,但没有任何帮助

我创建了一个新的导航应用程序,没有任何代码,点击F5,立即启动,很好。然后,我开始从我的SL4 LOB应用程序向新创建的导航应用程序添加相同的程序集引用。每次添加引用后,我都会点击F5以确保应用程序能够立即启动;到目前为止还不错

唉,我终于找到了System.Windows.Controls.Data.Toolkit.dll,它导致了与我原来的SL4 LOB应用程序相同的行为。我从导航应用程序中删除了引用,它会立即启动。它只有33kb,所以我不能说我的符号缓存有问题


还有谁见过这种奇怪的行为吗?如果您有任何见解,我们将不胜感激。

您的应用程序的小尺寸对于调试会话的启动速度并不重要。减速将由应用程序中的大量依赖项引起

您确实删除了一个引用,它极大地改进了事情,而且这个DLL很可能依赖于几十个其他库。如果使用类似的工具检查流程,您可以准确地看到在运行时加载了哪些库

这些无关的依赖关系相当常见。在VisualStudio中使用的项目向导几乎总是向最终应用程序不使用的项添加依赖项。例如,XML引用始终是默认项目的一部分,但并不总是需要使用XML。在您最初创建项目之后,检查并删除这些不必要的依赖项是一种很好的做法。如果需要,您可以随时返回并在将来重新引用它们