*正在运行的框架版本*和运行时运行的*版本之间有什么区别?

在这篇文章中 ,@ kbrimington提到框架的 哪个版本 正在运行以及正在运行 的运行时版本之间存在细微差别。

有什么区别?

这是一个快速细分,可能会为您提供所需的信息。 这可能令人困惑,但是值得花时间去理解这三者之间的差异以及它们之间的差异和相互关系。

CLR .NET C# ---- ---- ---- 1.0 1.0 1.0 1.0 1.1 1.0 2.0 2.0 2.0 2.0 3.0 3.0 2.0 3.5 3.0 4.0 4.0 4.0 4.0 4.5 5.0 

.NET框架是描述可用类的框架。 所以框架的版本告诉你哪些类可用。

运行时(CLR)是执行代码的部分,它是一个虚拟机,它将已编译的应用程序(MSIL)转换为可在主机操作系统上执行的字节代码。

在Visual Studio 2008或2010中进行开发时,您可以选择要使用的.Net框架版本。 这称为多目标定位 ,如此处和此处所述 :

Visual Studio的多目标function允许您指定应用程序所需的.NET Framework的特定版本或配置文件。 多目标的主要优点是您可以使用当前版本的Visual Studio来创建和开发针对早期版本的.NET Framework的项目。 例如,您可以继续开发在Visual Studio 2005和Visual Studio 2008中创建的项目,而无需添加新的.NET Framework依赖项。 多目标有助于确保应用程序仅使用指定.NET Framework版本中提供的function。 此外,多目标使您可以继续部署较旧的应用程序,而无需在部署包中添加新的.NET Framework版本。

在Visual Studio 2008中.Net 3.5上编译的应用程序将使用Visual Studio 2010中.Net 3.5上编译的同一应用程序的不同版本的运行时。

这意味着,当您支持或增强使用旧版本的.Net或Visual Studio编写的应用程序时,您仍然可以在较新版本的Visual Studio中进行该开发,并利用较新的function。

重要的是.NET版本是并排安装还是更新现有版本。 Verions 1.0,1.1,2.0和4.0是并排版本。 3.0,3.5,3.5SP1和即将推出的4.5是现有2.0和4.0版本的更新。 并使用相同的CLR版本,即您要询问的运行时版本 。 更新添加了额外的程序集。 你不能同时安装2.0和3.0,3.0更新取代2.0。 获取更新版本的唯一方法是阅读注册表,如您链接的问题所示。