3

托管可扩展性框架既是一个独立项目(当前面向 .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 部件吗?

4

1 回答 1

9

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

于 2009-12-24T16:08:30.137 回答