c#如果我在安装了.Net 2的机器上使用代码.NET 3.5功能会发生什么

时间:2011-01-19 08:52:45

标签: c#

只是出于兴趣,如果我使用出现在.Net 3.5中的Enumerable.Distinct函数构建了一些代码,然后在带有.Net 2.0的机器上运行它,会发生什么?

6 个答案:

答案 0 :(得分:5)

只要需要定义Enumerable.Distinct(System.Core)的程序集,程序就会崩溃。但是,如果您使用.NET 2.0并使用LinqBridge而不是System.Core,则可以使其工作。

答案 1 :(得分:3)

只要您没有任何3.5 Framework引用,您就可以编译3.5 Framework项目并在2.0 Framework上运行它。在您的情况下,您正在使用3.5 Framework引用中的Enumerable.Distinct,因此您的应用程序将失败。

答案 2 :(得分:2)

.Net 2.0将无法理解该命令,因为该库不存在。

答案 3 :(得分:2)

.NET 3.5本质上是.NET 2.0 +一些额外的程序集。

如果没有安装那些额外的组件,即。未安装.NET 3.5,那么您的程序将无法在需要时加载这些程序集。

如果你设法避免使用这些程序集,那么可能你的程序运行得很好,但我会说这将是规则的例外。对于您的具体示例,在您的程序第一次使用.NET 3.5代码时,您将获得异常。

简而言之,请确保目标计算机上安装了.NET 3.5(SP1)。

答案 4 :(得分:1)

很可能你的代码会抱怨启动时没有安装.net 3.5。

答案 5 :(得分:1)

简单,它会在你使用.net 3.5特定功能的地方的各个点崩溃。

但基本问题......你为什么要那样做?

如果您已将项目从.net freamework版本2.0迁移到3.5并且未使用.net 3.5的任何功能,则不代表有效的框架迁移