加载DLL及其依赖项

时间:2010-01-15 03:06:19

标签: c# .net dll

如何加载dll及其依赖项?我不想将每个依赖的dll放在Assembly.Load中。我宁愿只加载一个dll,然后加载依赖项。

我的应用程序启动时未加载上述dll。它们仅在用户执行特定操作时加载,然后冻结gui。

解决方法是在窗口的构造函数中创建一个实例,然后将该实例设置为null。这绝对不是最优雅的解决方案。或者是吗?感谢。

3 个答案:

答案 0 :(得分:5)

您可以加载程序集,然后使用:

var names = myAssembly.GetReferencedAssemblies();

Assembly.GetReferencedAssemblies将为您提供程序集引用的程序集的完整列表。只需加载它们,您就可以加载所有依赖项。

答案 1 :(得分:0)

作为构造函数构思的一个更优雅的版本,您可以使用启动画面在应用程序启动时娱乐用户,并简单地从强制DLL加载的客户端代码中进行一些任意调用。来自一个单独的非ui线程......

使用Assembly.Load或强制加载,启动画面是一个好主意。

这是一个体面的splash screen sample app from Code Project

答案 2 :(得分:0)

除非您的应用程序要在后期加载的程序集中使用引用程序集中的特定类型,否则不需要让应用程序本身加载这些引用。否则,Reed Copsey的答案将是您最好的选择。