Environment.Version返回的版本号与"版本名称不匹配"

时间:2013-02-12 17:02:10

标签: .net version

运行此代码时:

foreach (string drive in Environment.GetLogicalDrives())    
    Console.WriteLine("Drive: {0}", drive);

    Console.WriteLine("OS: {0}", Environment.OSVersion);
    Console.WriteLine("Processor count: {0}", Environment.ProcessorCount);
    Console.WriteLine(".NET version: {0}", Environment.Version);

我得到了

enter image description here

当我下载并启动.NET安装程序时,我被告知已经安装了4.5版本。版本名称和实际版本号之间是否有区别?

3 个答案:

答案 0 :(得分:4)

是 - 基本上是.NET 4.5 is an in-place replacement for .NET 4.0,因此Environment.Version将返回前3个部分的相同版本号。版本号的 build 部分(在您的情况下为18010)在.NET 4.0和.NET 4.5之间是不同的(并且可能对每个版本进行更新)但主要/次要/补丁级别为4.0.30319 in两种情况。

这令人困惑,但这就是情况,我很害怕。

答案 1 :(得分:2)

.NET 4.5是4.0的直接替代品 - 版本号确实是你看到的。

检查reference assemblies directory

中的程序集版本

答案 2 :(得分:0)

从.NET Core 3.0(和.NET Standard 2.1)开始,情况已更改,现在Environment.Version正常工作。

System.Console.WriteLine($"Environment.Version: {System.Environment.Version}");

// Old result
//   Environment.Version: 4.0.30319.42000
//
// New result
//   Environment.Version: 3.0.0

有关更多信息,请参见documentation