以可编程方式确定特定Visual Studio Build的CLR版本的可靠方法

Abh*_*jit 7 .net c++ clr visual-studio

从历史上看,我一直依赖于HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio \\ CLR版本下的注册表项名称CLR版本来确定CLR,.NET Framework版本构建和Visual Studio版本之间的映射.从下面的屏幕截图中可以看出,CLR版本可靠地存在于先前版本中,我相信即使对于之前提到的版本之前的版本也是如此 在此输入图像描述

但是,当我检查Visual Studio 11.0 - 2012的相同注册表项时,缺少此信息. 在此输入图像描述

所以,我的问题是,确定特定Visual Studio Build的CLR版本的可靠方法是什么?

PS:

  • 我想以编程方式从Native C++程序中确定CLR版本,这意味着Environment :: Version不可用.
  • 此方法应该可靠地适用于VS版本
  • 我不能依赖任何现有的程序集并使用ICLRMetaHost :: GetVersionFromFile并且不推荐使用GetFileVersion