代码之家  ›  专栏  ›  技术社区  ›  Wim Coenen

将面向.NET 3.5的MEF部分与面向.NET 4.0的应用程序混合

  •  3
  • Wim Coenen  · 技术社区  · 15 年前

    这个 Managed Extensibility Framework 是独立项目(当前面向.NET 3.5)和.NET 4.0框架的一部分。

    假设我创建以.NET 3.5为目标的包含MEF部件的程序集。这些程序集将引用 System.ComponentModel.Composition.dll .

    现在假设我创建一个面向.NET 4.0的支持MEF的应用程序。此应用程序将引用 system.componentmodel.composition.dll 它与.NET 4.0框架一起提供。我能在这个应用程序中使用前面提到的MEF部件吗?

    1 回复  |  直到 15 年前
        1
  •  9
  •   Wes Haggard    15 年前

    不幸的是,这将不起作用,因为System.ComponentModel.Composition.dll的3.5版本只能通过构建codeplex drop生成,并且没有使用与官方4.0版本相同的密钥进行签名,因此CLR将加载两个程序集并将属性视为两个不同的属性。因此,假设应用程序正在使用System.ComponentModel.Composition.dll的.NET 4.0版本并构造目录/容器,它将只找到用.NET 4.0版本的属性标记的部分。