How to reliably detect the actual .NET 4.5 version installed?

前端 未结 4 1534
一生所求
一生所求 2020-11-29 18:16

My actual problem is that I have encountered two versions of .NET 4.5 full setups:

  • a (possibly) older one, which is also available when downloading SQL Server
4条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-29 18:48

    MS recently patched .NET 4.5 to restore backwards compatibility with .NET 4.0 in some scenarios (see http://blogs.msdn.com/b/dotnet/archive/2012/10/17/net-framework-4-5-off-to-a-great-start.aspx).

    It's possible that MS updated the setup with these changes (so that users upgrading to .NET 4.5 don't run into compat trouble), though I don't know why they wouldn't change the version number on the setup.

    Also, note that there's a difference between the .NET version number and the runtime version number as reported by System.Environment.Version. The latter still is 4.0.30319.* for .NET 4.5, only the revision number changes (with the .NET 4.5 update, and also with every security update).

    Here are some examples of runtime versions observed in the wild:

    Base 4.0

    • 4.0.30319.1 = .NET 4.0 RTM
    • 4.0.30319.269 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS12-035 GDR security update)
    • 4.0.30319.276 = .NET 4.0 on Windows XP SP3 (4.0.3 Runtime update)
    • 4.0.30319.296 = .NET 4.0 on Windows XP SP3, 7 (with MS12-074 GDR security update)
    • 4.0.30319.544 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS12-035 LDR security update)
    • 4.0.30319.1008 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS13-052 GDR security update)
    • 4.0.30319.1022 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS14-009 GDR security update)
    • 4.0.30319.1026 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS14-057 GDR security update)
    • 4.0.30319.2034 = .NET 4.0 on Windows XP SP3, 7, 7 SP1 (with MS14-009 LDR security update)

    4.5

    • 4.0.30319.17626 = .NET 4.5 RC
    • 4.0.30319.17929 = .NET 4.5 RTM
    • 4.0.30319.18010 = .NET 4.5 on Windows 8
    • 4.0.30319.18052 = .NET 4.5 on Windows 7 SP1 64-bit
    • 4.0.30319.18063 = .NET 4.5 on Windows 7 SP1 64-bit (with MS14-009 security update)

    4.5.1

    • 4.0.30319.18408 = .NET 4.5.1 on Windows 7 SP1 64-bit
    • 4.0.30319.18444 = .NET 4.5.1 on Windows 7 SP1 64-bit (with MS14-009 security update)
    • 4.0.30319.34014 = .NET 4.5.1 on Windows 8.1 64-bit

    4.5.2

    • 4.0.30319.34209 = .NET 4.5.2 on Windows 7 SP1 64-bit
    • 4.0.30319.34209 = .NET 4.5.2 on Windows 8.1 64-bit

    4.6 and later

    • 4.0.30319.42000

    I don't see any .NET updates in my Windows Update history, so I guess the update to v18010 got installed as part of KB 2756872.

    Update: apparently Microsoft updated the .NET 4.5 setup due a mistake with the digital signatures in the original download. KB 2770445.

提交回复
热议问题