Ответ 1
Используйте Реестр Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
.
Мне нужно определить самую высокую версию платформы .NET, установленную на настольном компьютере, из кода C\С++. Похоже, я могу перебирать папки под %systemroot%\Microsoft.NET\Framework
, но это похоже на склонность к ошибкам. Есть ли способ лучше? Может быть, раздел реестра, который я могу проверить? Спасибо.
Используйте Реестр Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
.
Ключи реестра для платформы .NET Framework начинаются следующим образом:
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\
В зависимости от версии остальная часть ключа будет отличаться (проверьте на этой странице).
Вы можете посмотреть, как получить доступ к реестру в статье MSDN Использование реестра в приложении на С++.
Если вы пытаетесь сделать это из управляемого кода, взгляните на эту статью , которая охватывает всю логику, необходимую для определить, установлена ли определенная версия Framework.
В противном случае взгляните на сообщение блога Aaron здесь, в котором используется метод C/С++ для выполнения того же самого.
Следующее должно дать вам ответ, но он кажется ужасно сломанным: (
c:\Program Files>clrver
Versions installed on the machine:
v2.0.50727