在.NET 2.0上使用.NET 3.5功能......它有效吗?

时间:2011-07-18 09:02:08

标签: .net .net-3.5 .net-2.0

我的.NET应用程序作为C ++ MFC桌面应用程序的插件运行,该应用程序提供.NET SDK。主应用程序负责在加载任何插件之前加载.NET。我正在针对.NET 3.5编译我的项目,以下测试代码工作得很好:

    MainApp.WriteLine("MyPlugin running on .NET {0}.{1}", _
                       System.Environment.Version.Major, _
                       System.Environment.Version.Minor)

    Dim data As Int32() = New Int32() {1, 1, 1, 1, 4, 4, 4, 4, 12, 12, 12, 12}
    For Each distinctValue As Int32 In data.Distinct()
      MainApp.Write(distinctValue.ToString() & ", ")
    Next

这是应该只能在.NET 3.5上运行的Linq代码吗?但是,当它打印版本消息时,它声称“MyPlugin在.NET 2.0上运行”

为什么/如何工作?如果安装了.NET 3.5,我可以依赖它始终工作吗?

2 个答案:

答案 0 :(得分:2)

据猜测,它正在报告.NET的核心版本,即2.0。这是没有更新的unti lversion 4.0,因为核心代码是相同的。

答案 1 :(得分:1)

.net 3.5中的某些功能只是语法糖,编译器将它们编译为MSIL,可以由2.0运行时执行。
因此,您只需要在开发计算机上使用VS 2008和.net 3.5,但运行已编译应用程序的计算机只需要2.0运行时。

在这里看到这个问题:SO What features of .NET 3.5 can be used in a .NET 2.0 application?