【问题标题】:How can MEF resolve dependencies of assemblies that don't live at the root of the application?MEF 如何解决不在应用程序根目录中的程序集的依赖关系?
【发布时间】:2011-09-23 18:20:28
【问题描述】:

我已将我的应用程序编写为一个由 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

【问题讨论】:

    标签: mvvm mef mefedmvvm


    【解决方案1】:

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

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

    我通常是这样处理的。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        • 2018-04-27
        • 1970-01-01
        • 2015-04-16
        • 2017-09-07
        • 2019-01-12
        • 1970-01-01
        相关资源
        最近更新 更多