一、微软官方的查看电脑当前安装的.NET frameworke 版本
1.1微软官方 .NET Framework 指南
这里面有详细的版本介绍 有什么不明白的 一搜就ok简单有效大方
此 .NET Framework 内容集包含 .NET Framework 4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1 和 4.7.2 版本的相关信息。 若要下载 .NET Framework,请参阅安装 .NET Framework。 有关 NET Framework 4.5、.NET Framework 4.6 及其子版本和 .NET Framework 4.7、4.7.1 和 4.7.2 的新增功能和更新列表,请参阅 .NET Framework 中的新增功能。 有关受支持的平台列表,请参阅 .NET Framework 系统要求。
.NET Framework 是用于为 Web、Windows、Windows Phone、Windows Server 和 Microsoft Azure 构建应用的开发平台。 它包含公共语言运行时 (CLR) 和 .NET Framework 类库,其中包括各种功能和对许多行业标准的支持。
.NET Framework 提供许多服务,包括内存管理、类型和内存安全、安全性、网络和应用程序部署。 它提供易于使用的数据结构和 API,将较低级别的 Windows 操作系统抽象化。 可在 .NET Framework 中使用各种编程语言,包括 C#、F# 和 Visual Basic。
有关适用于用户和开发人员的 .NET Framework 的常规说明,请参阅入门。 有关 .NET Framework 的体系结构和主要功能简介,请参阅概述。
.NET Framework 可与 Windows 容器和 Docker 结合使用。 请参阅使用 Docker 部署 .NET Framework 应用程序,了解如何在 Docker 容器中运行应用程序。
.NET Framework 版本 2.0、3.0 和 3.5 是使用 CLR (CLR 2.0) 的相同版本生成的。 每个版本增量地生成于早期 .NET Framework 版本。 在计算机上不可能并排运行版本 2.0、3.0 和 3.5。 在安装 .NET Framework 3.5 SP1 时,会自动安装 2.0 和 3.0 层。 但是,.NET Framework 4 关闭此分层方法。 以 .NET Framework 4 开始,可使用进程内并行承载来在单独的进程中运行多个公共语言运行时 (CLR)
版本。 Apps 的 2.0 ,3.0 和 3.5 版本可以全部在 3.5 版运行,但是,它们在 4 版或更高版本将不起作用。.NET Framework 4.5 是就地更新,替换您的计算机上的 .NET Framework 4。 在安装此更新后,您的 .NET Framework 4 应用程序在无需重新编译的情况下应继续运行。 但是,.NET Framework 中的某些更改可能需要更改您的应用程序代码。 有关更多信息,在 .NET Framework 4.5 中运行现有应用程序前,请参见 在 .NET
Framework 4.5 中的应用程序兼容性。 有关安装当前版本的更多信息,请参见 安装 .NET Framework 4.5。 有关对 .NET Framework 的支持的信息,请参见 Microsoft 支持网站上的 Microsoft .NET Framework Support Lifecycle Policy(Microsoft .NET Framework 支持生命周期策略)。
通过在代码中查询注册表找到已安装的更新
using System;
using Microsoft.Win32;
public class GetUpdateHistory
{
public static void Main()
{
using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\Updates"))
{
foreach (string baseKeyName in baseKey.GetSubKeyNames())
{
if (baseKeyName.Contains(".NET Framework"))
{
using (RegistryKey updateKey = baseKey.OpenSubKey(baseKeyName))
{
Console.WriteLine(baseKeyName);
foreach (string kbKeyName in updateKey.GetSubKeyNames())
{
using (RegistryKey kbKey = updateKey.OpenSubKey(kbKeyName))
{
Console.WriteLine(" " + kbKeyName);
}
}
}
}
}
}
}
}
借鉴文章:.NET Framework各版本汇总以及之间的关系