该托管扩展框架既是一个独立的项目(目前靶向.NET 3.5)和.NET 4.0框架的一部分.
假设我创建了包含MEF部件的.NET 3.5程序集.这些程序集将引用独立版本System.ComponentModel.Composition.dll.
现在假设我创建了一个支持MEF的应用程序,目标是.NET 4.0.此应用程序将引用System.ComponentModel.Composition.dll.NET 4.0框架附带的.我是否可以在此应用中使用上述MEF部件?
不幸的是,这不起作用,因为您只能通过构建codeplex drop生成3.5版本的System.ComponentModel.Composition.dll,并且没有使用与官方4.0版本相同的密钥签名,因此CLR将加载两个程序集并处理属性为两个不同的属性.因此,假设应用程序使用.Net 4.0版本的System.ComponentModel.Compsition.dll并构造Catalog/Container,它将只查找标有.Net 4.0版本属性的部分.