2011-02-09 61 views
4

在我的SL4 LOB应用程序中,我可能碰到F5 1000x或更多,没有任何问题。突然间,在应用的启动事件发生之前,现在触及F5可能需要长达90秒的时间。在Silverlight中启动调试会话需要很长时间

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

我创建了一个新的导航应用程序,没有任何代码,打F5,马上启动,太棒了。然后我开始从我的SL4 LOB应用程序添加相同的程序集引用到新创建的导航应用程序。添加每个参考后,我会打F5,以确保应用程序能够立即启动;到现在为止还挺好。

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

有没有人看过这种奇怪的行为?任何见解将不胜感激。

回答

1

应用程序的小尺寸对于调试会话启动的速度无关紧要。减速将由应用程序中的大量依赖引起。

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

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

相关问题