2011-02-09 44 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。在最初創建項目後,最好通過並刪除這些不必要的依賴項。如果需要,您可以隨時返回並重新引用它們。

相關問題