加载一个DLL及其依赖项

4
我该如何加载一个dll及其依赖项?我不想在Assembly.Load中放置每个依赖的dll。我宁愿只加载一个dll,然后再加载其依赖项。
上述的dlls并不是在我的应用程序启动时加载的。只有当用户执行特定操作时,它们才会被加载,这时会冻结gui。
一种解决方法是在窗口构造函数中创建一个实例,然后将该实例设置为null。但这绝对不是最优雅的解决方案。或者说,它是吗?谢谢。
3个回答

5
您可以加载您的程序集,然后使用以下代码:
var names = myAssembly.GetReferencedAssemblies();

Assembly.GetReferencedAssemblies 方法可以返回程序集引用的全部程序集列表。只需加载这些程序集,即可加载所有依赖项。


0
作为您构造函数想法的更加优雅的版本,您可以使用启动画面来娱乐用户,并从客户端代码中进行一些任意调用以强制DLL加载。从单独的非UI线程进行...

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

这里有一个看起来不错的Code Project上的启动画面示例应用程序


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接