版本之间的引用。网络框架
Posted
技术标签:
【中文标题】版本之间的引用。网络框架【英文标题】:References between versions . NET Framework 【发布时间】:2012-04-06 03:43:00 【问题描述】:我有一个用 C# 编写的程序集,用 3.5 版编译,使用 WCF。此库必须由使用 vb.net 编写的另一个应用程序使用,该应用程序是使用 2.0 版编译的外部公司。
有可能吗?
【问题讨论】:
您是否尝试过引用 .dll? vb.net 应用程序将在哪里运行?在 .NET 2.0 系统上,还是在 .NET 3.5 系统上? 【参考方案1】:不,这是不可能的,但不是因为框架差异。这是不可能的,因为您的客户端没有 WCF 所需的程序集。
实际上,.NET 2.0 和 .NET 3.5 使用相同的 CLR。如果您为 .NET 3.5 编译代码,但不使用任何新程序集,那么 .NET 2.0 应用程序应该可以使用该代码。 .NET 3.5 只是 .NET 2.0 SP2 加上一些新的程序集。
事实上,.NET 3.0 是 .NET 2.0 SP1 加上一些新的程序集。 .NET 3.5 是 .NET 2.0 SP2 加上 .NET 3.0 SP1 加上更多新程序集。这三个都使用 .NET 2.0 CLR。
.NET 4.0 使用新的 CLR 并且是一个新版本。 .NET 4.0 代码无法在 .NET 2.0 机器上运行。但是,有一项功能允许 .NET 2.0 和 .NET 4.0 CLR 同时运行。
【讨论】:
我不明白这一点,你是说 .net 3.5 dll 将在托管的 .net 2.0 进程中运行,因此无法链接 WCF 内容?为什么?即使这是真的,WCF 仍然会在 2.0 CLR 中运行。 WCF 无法在那里运行,因为程序集不存在。我是说可以创建一个针对 .NET 3.5 框架的程序,如果您不使用任何新程序集,该程序将在仅安装了 .NET 2.0 SP2 的系统上运行。 是的,但我不确定这就是 OP 所说的。他不是在谈论运行时限制,而是在谈论这两个程序的编译框架。我将其解读为同时安装了两个框架。【参考方案2】:不,你不能这样做。
但你可以做一件事。您可以为您的其他应用程序提供运行 WCF 代码和您在应用程序中使用的任何其他 dll 所需的必要 dll
。
我不确定,但你可以试一试。
【讨论】:
以上是关于版本之间的引用。网络框架的主要内容,如果未能解决你的问题,请参考以下文章