【发布时间】:2012-06-24 20:27:51
【问题描述】:
我有一个通过 Mef 加载某些(可扩展)功能的应用程序。因为这些模块(可能)使用了 3rd 方控件 (Telerik),所以我想尽量减少用户感知的加载时间(在使用上述控件打开表单时),我想预加载这些 Mef 模块引用的程序集。
我正在做的是使用 Assembly.GetReferencedAssemblies(..) 方法来获取每个 Mef 模块引用的程序集的名称,并尝试使用 Assembly.Load(..) 它们。
由于模块位于文件系统上的“某处”(通常不同于 ExecutingAssembly 的路径),因此对于不在 Gac 中的这些 Mef 模块的引用,加载失败。
有没有办法修改我的 AppDomain.CurrentDomain 的程序集加载路径?我知道 AppDomain.AssemblyLoad 事件,但是使用它有点麻烦,因为每个模块可能驻留在不同的目录中。
【问题讨论】:
标签: .net mef .net-assembly