2010-01-15 119 views
1

如何加載DLL和它的依賴?我不想將每個依賴dll放在Assembly.Load中。我寧願只加載一個DLL,然後加載依賴關係。加載DLL及其依賴

以上的DLL不會被加載時,我的應用程序啓動。它們只在用戶執行特定操作時才加載,然後凍結GUI。

一種解決方法是建立在我的窗口的構造的實例,然後設置該實例爲null。這絕對不是最優雅的解決方案。或者是?謝謝。

回答

5

您可以加載程序集,然後使用:

var names = myAssembly.GetReferencedAssemblies(); 

Assembly.GetReferencedAssemblies會給你你的組件引用的程序集的完整列表。只需加載這些,並且您將加載所有的依賴關係。

0

至於你的構造的想法多了幾分優雅的版本,你可以使用一個閃屏,在娛樂應用的用戶的啓動,只是從您的客戶端代碼,迫使DLL加載一些任意調用。從一個獨立的,非UI線程...

無論是與Assembly.Load或力負荷,閃屏是一個好主意。

這裏有一個體面的前瞻性splash screen sample app from Code Project

0

除非你的應用程序要使用特定類型的引用組件內從後加載的程序集也沒有必要讓應用程序本身加載這些引用。否則,裏德科普塞的答案將是你最好的選擇。