在我的 SL4 LOB 应用程序中,我可能已经毫无问题地达到了 F5 1000 倍或更多。突然之间,现在按下 F5 最多可能需要 90 秒才能引发应用程序的启动事件。
我试过清除 IE 浏览器缓存,没有帮助。
我创建了一个没有任何代码的新导航应用程序,按 F5,立即启动,太棒了。然后,我开始将来自我的 SL4 LOB 应用程序的相同程序集引用添加到新创建的导航应用程序。添加每个引用后,我会按 F5 以确保应用程序能够立即启动;到目前为止,一切都很好。
唉,我终于来到了 System.Windows.Controls.Data.Toolkit.dll,它导致了与我原来的 SL4 LOB 应用程序相同的行为。我从导航应用程序中删除了引用,再次,它会立即启动。它只有 33kb,所以我不能说我的符号缓存有问题。
有没有其他人看到过这种奇怪的行为?任何见解将不胜感激。
最佳答案
应用程序的小尺寸对于调试 session 的启动速度并不重要。速度变慢是由应用程序中的大量依赖项引起的。
您确实删除了一个引用,这极大地改善了情况,并且这个 DLL 可能依赖于数十个其他库。如果您使用 Process Explorer 之类的工具检查进程您可以准确地看到在运行时加载了哪些库。
这些无关的依赖是相当普遍的。您在 Visual Studio 中使用的项目向导几乎总是会向最终应用程序不会使用的项目添加依赖项。例如,XML 引用始终是默认项目的一部分,但并不总是需要使用 XML。在您最初创建项目后,检查并删除这些不必要的依赖项是一种很好的做法。如果需要,您可以随时返回并在将来重新引用它们。
关于silverlight - 在 Silverlight 中启动调试 session 需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950376/