繁体   English   中英

为什么具有相同目标框架版本的两个应用程序的.NET版本不同

[英]Why .NET version is different for two app with same target framework version

添加了一些小代码以在运行时查找.NET版本:

  1. 样例程序
  2. 专有应用。

      var version = Environment.Version; Console.WriteLine(version.ToString()); 

两者都使用目标版本.NET Framework 4进行了编译。

样本编输出为4.0.30319.255

专有应用的输出为2.0.50727.8000

示例程序正在被编译并在同一台计算机上运行。

该专有应用正在一台构建机器上进行编译,并在另一台生产机器上进行部署。

为什么会有这种版本差异。

我应该在专有应用程序中哪里寻找此问题。 给我一些指示。

首次检查文档:

Environment.Version属性

获取一个Version对象,该对象描述公共语言运行时的主要,次要,内部和修订版本号。

警告

对于更高版本的.NET Framework 4.5,我们建议您不要使用Version属性来检测运行时的版本。 相反,您可以通过查询注册表来确定公共语言运行库的版本。 有关更多信息,请参见如何:确定安装了.NET Framework版本

请参阅以下链接,以进一步了解您的问题:
如何在运行时检测到.NET版本4.5当前正在运行您的代码?

使用2.0 vs. 3.0或3.5时,Environment.Version毫无帮助,因为它总是返回2.0,因为所有这些框架版本都使用CLR 2.0。

也请阅读: NET版本控制和多目标-.NET 4.5是就地升级到.NET 4.0的工具

请注意,此就地替换与.NET 2.0和3.0 / 3.5的并行安装有很大不同,.NET 2.0和3.0 / 3.5均在CLR的2.0版本上运行。 这两个3.x版本基本上是在核心.NET 2.0运行时之上的库增强。 这两个版本都在.NET 2.0运行时下运行,整个3.x周期都未更改(安全补丁和错误修复除外)。 相反,4.5更新完全替代了.NET 4.0运行时,并将实际版本号设置为v4.0.30319

参考文献:
为什么System.Environment.Version报告框架2?

Environment.Version为您提供CLR使用的版本,而不是.Net框架本身

请参阅如何在运行时检测.NET 4.5当前正在运行您的代码?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM