Определите самую высокую версию .NET Framework

Мне нужно определить самую высокую версию платформы .NET, установленную на настольном компьютере, из кода C\С++. Похоже, я могу перебирать папки под %systemroot%\Microsoft.NET\Framework, но это похоже на склонность к ошибкам. Есть ли способ лучше? Может быть, раздел реестра, который я могу проверить? Спасибо.

Ответ 1

Используйте Реестр Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP.

Ответ 2

Ключи реестра для платформы .NET Framework начинаются следующим образом:

HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\

В зависимости от версии остальная часть ключа будет отличаться (проверьте на этой странице).

Вы можете посмотреть, как получить доступ к реестру в статье MSDN Использование реестра в приложении на С++.

Ответ 3

Если вы пытаетесь сделать это из управляемого кода, взгляните на эту статью , которая охватывает всю логику, необходимую для определить, установлена ​​ли определенная версия Framework.

В противном случае взгляните на сообщение блога Aaron здесь, в котором используется метод C/С++ для выполнения того же самого.

Ответ 4

Следующее должно дать вам ответ, но он кажется ужасно сломанным: (

c:\Program Files>clrver
Versions installed on the machine:
v2.0.50727