如何在 .NET 3.5 项目中引用 .NET 4.0 程序集
Posted
技术标签:
【中文标题】如何在 .NET 3.5 项目中引用 .NET 4.0 程序集【英文标题】:How to reference .NET 4.0 assembly within .NET 3.5 projects 【发布时间】:2010-12-09 06:07:47 【问题描述】:我想使用 .NET 4.0 做一些 Office Interop 的工作,但使用 VS2008 和 .NET3.5 开发我的项目的其余部分。
我现在如何在我的其他解决方案中使用 .NET 4.0 程序集的功能。将 CLR 4.0 程序集加载到 2.0 AppDomain 中不起作用,是吗?
【问题讨论】:
【参考方案1】:简而言之:你不能。
.NET 4.0 是一个全新的 CLR (4.0),据我所知,它不能与 .NET 3.5 混合和/或从 VS 2008 中使用,抱歉。
如果您还保证 .NET 2.0 框架与 .NET 4 同时(并排)在您的目标计算机上,则您可以使用 .NET 4.0 代码中的 .NET 2.0 程序集。
【讨论】:
【参考方案2】:您不能将更高版本的 .NET 框架版本程序集与旧的 .NET 版本一起使用。
【讨论】:
【参考方案3】:CLR 4 允许InProc Side by side,但您仍然需要查看加载的 2.0 和 4.0 代码之间的一些互操作解决方案。
【讨论】:
【参考方案4】:对此我不太确定,但我相信你可以这样做(虽然,也许不推荐,但在技术上是可行的。)
由于 Net Framework 4.0 使用不同的 CLR,并且可以并排安装两者...也许您可以尝试将 4.0 程序集加载到 4.0 CLR 中,将 2.0 应用程序加载到 2.0 中,并通过网络在两者之间进行通信服务。
同样,我不确定这是否可行。这只是一些想法。
【讨论】:
不,.Net 中没有跨进程通信。您必须实现自己的非托管 (COM) 通信。 我不明白为什么您不能在 2 个应用程序之间使用 Web 服务,一个用 .Net 2 编写,另一个用 .Net 4 编写。以上是关于如何在 .NET 3.5 项目中引用 .NET 4.0 程序集的主要内容,如果未能解决你的问题,请参考以下文章
插件项目必须是.NET 3.5 其余代码库是.NET 4.0 怎么解决?
我可以在面向 .Net 3.5 的项目中使用所有 C# 4.0 功能吗?
如何在 .NET 3.5 中使用 System.IdentityModel.Tokens.Jwt 5.2.1?