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

时间:2011-02-09 20:59:21

标签: silverlight performance caching debugging symbols

在我的SL4 LOB应用程序中,我可能会毫无问题地达到F5 1000x或更高。突然,现在点击F5可能需要90秒才能启动应用程序的启动事件。

我已经尝试清除IE浏览器缓存,没有帮助。

我创建了一个新的导航应用程序,没有任何代码,点击F5,立即启动,很棒。然后我开始将我的SL4 LOB应用程序中的相同程序集引用添加到新创建的导航应用程序中。添加每个引用后,我会点击F5以确保应用程序能够立即启动;到目前为止一切顺利。

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

还有其他人看到过这种奇怪的行为吗?任何见解将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

你确实删除了一个极大改进的引用,很可能这个单独的DLL可能依赖于其他几十个库。如果使用Process Explorer之类的工具检查过程,则可以确切地看到在运行时加载了哪些库。

这些无关的依赖是相当普遍的。您在Visual Studio中使用的项目向导几乎总是会向最终应用程序不使用的项添加依赖项。例如,XML引用始终是默认项目的一部分,但并不总是需要使用XML。最初创建项目后,最好通过并删除这些不必要的依赖项。如果需要,您可以随时返回并重新引用它们。