缓解:产品版本控制

在 .NET Framework 4.6 及更高版本中,产品版本控制已从以前版本的 .NET Framework(.NET Framework 4、4.5、4.5.1 和 4.5.2)发生了变化。

产品版本更改

以下是详细的更改:

  • 在 .NET Framework 4.6 及其点版本中,Version密钥的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full条目值已更改为4.6.xxxxx,而在 .NET Framework 4.7 中已更改为4.7.xxxxx。 在 .NET Framework 4.5、4.5.1 和 4.5.2 中,其格式4.5.xxxxx

  • .NET Framework 文件的文件和产品版本控制已从早期版本控制方案 4.0.30319.x 更改为 4.6.X.0 .NET Framework 4.6 及其点版本,以及 4.7.X.0 .NET Framework 4.7 及其点版本。 右键单击文件后查看文件 的属性 时,可以看到这些新值。

  • 对于 .NET Framework 4.6 及其点版本,托管程序集的 AssemblyFileVersionAttributeAssemblyInformationalVersionAttribute 特性具有格式为 Version4.6.X.0 值,对于 .NET Framework 4.7,则为格式 4.7.X.0

  • 从 .NET Framework 4.6 开始,该 Environment.Version 属性返回固定版本字符串 4.0.30319.42000。 在 .NET Framework 4、4.5、4.5.1 和 4.5.2 中,它以小于 42000 的格式4.0.30319.xxxxxxxxxx返回版本字符串(例如,“4.0.30319.18010”)。 请注意,我们不建议应用程序代码对 Environment.Version 属性采用任何新的依赖项。

处理产品版本变更

通常,应用程序应依赖于用于检测 .NET Framework 运行时版本和安装目录等作的建议技术:

  • 若要检测 .NET Framework 的运行时版本,请参阅 如何:确定安装了哪些 .NET Framework 版本

  • 若要确定 .NET Framework 的安装路径,请使用InstallPath密钥中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full条目的值。

    重要

    子项名称是NET Framework Setup,而不是.NET Framework Setup

  • 若要确定 .NET Framework 公共语言运行时的目录路径,请调用 RuntimeEnvironment.GetRuntimeDirectory 该方法。

  • 若要获取 CLR 版本,请调用 RuntimeEnvironment.GetSystemVersion 该方法。 对于 .NET Framework 4 及其点版本(.NET Framework 4.5、4.5.1、4.5.2 和 .NET Framework 4.6、4.6.1、4.6.2 和 4.7),它将返回字符串 v4.0.30319

另请参阅