从历史上看,我一直依赖HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\\CLR版本下的注册表项名称CLR版本来确定 CLR、.NET Framework 版本构建和 Visual Studio 版本之间的映射。正如您从下面的屏幕截图中看到的那样,CLR 版本可靠地存在于之前的版本中,我相信即使对于下面提到的版本之前的版本也是如此
但是,当我检查 Visual Studio 11.0 - 2012 的相同注册表项时,缺少此信息。
所以,我的问题是,确定特定 Visual Studio 版本的 CLR 版本的可靠方法是什么?
PS:
- 我想通过本机 C++ 程序以编程方式确定 CLR 版本,这意味着Environment::Version不可用。
- 此方法应该可靠地跨 VS 版本工作
- 我不能依赖任何现有程序集并使用 ICLRMetaHost::GetVersionFromFile 和已弃用的 GetFileVersion