2010-01-15 114 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

除非你的应用程序要使用特定类型的引用组件内从后加载的程序集也没有必要让应用程序本身加载这些引用。否则,里德科普塞的答案将是你最好的选择。