9

是否可以使用 MEF 或 MAF 等容器在 .net 3.5 应用程序中加载 .net 4.0 应用程序?

我知道在.net 中只支持向后兼容性这一事实,这会对容器产生任何影响吗?

4

1 回答 1

3

这不可能。当应用程序加载时,它将使用 CLR v2.0 (.NET 3.5)。.NET 4.0 程序集需要使用 CLR v4.0,并且由于应用程序不可能同时托管两个 CLR,因此无论程序集如何加载,您都不会有太多运气。

您最好的选择是使用 CLR v4.0 启动应用程序:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>

编辑

根据 Jon Hanna 的评论,事实证明“不可能”这个词太强了。有一种叫做“CLR In-Process Side-by-Side”的东西,它是 .NET 4 的一部分。我仍然推荐我原来的答案,但可以在以下位置找到更多信息:

于 2014-02-23T21:33:20.917 回答