是否可以使用 MEF 或 MAF 等容器在 .net 3.5 应用程序中加载 .net 4.0 应用程序?
我知道在.net 中只支持向后兼容性这一事实,这会对容器产生任何影响吗?
这不可能。当应用程序加载时,它将使用 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 的一部分。我仍然推荐我原来的答案,但可以在以下位置找到更多信息: