MEF如何解决不在应用程序根目录下的程序集的依赖关系?

时间:2011-09-23 18:20:29

标签: mvvm mef mefedmvvm

我已将我的应用程序编写为由win32 MFC应用程序启动的类库。我的每个视图都是一个单独的程序集,它位于托管MFC应用程序的子目录中的基类库中。

我的问题是,如何使用此子目录中的程序集而不是根目录来让MEF解析导出类的依赖项?

这就是我想要的:

ParentFolder
 myapp.exe
 SubFolder
     myMvvmWindow.dll
     myMvvmSubWindow.dll
     *Microsoft.Expression.Interactions.dll*

这就是我现在必须拥有的:

  ParentFolder
     myapp.exe
     *Microsoft.Expression.Interactions.dll*
     SubFolder
         myMvvmWindow.dll
         myMvvmSubWindow.dll

2 个答案:

答案 0 :(得分:1)

您也可以在app.config文件中执行此操作:

Is it possible to set assembly probing path w/o app.config?

这通常是我处理它的方式。

答案 1 :(得分:0)

MEF不会为您处理这种情况,因为它使用CLR的常规程序集加载机制来查找依赖项。

但是,您可以通过处理AppDomain.AssebmlyResolve轻松解决特定子目录的问题。如果在子文件夹中检查主目录中未解析的程序集,则可以自行加载它们并使其正常运行。