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

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

4 ответа

Решение

Используйте расположение реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP,

Ключи реестра для.NET Framework начинаются так:

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

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

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

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

В противном случае, посмотрите на пост в блоге Аарона, который дает метод C/C++ для того же.

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

c:\Program Files>clrver
Versions installed on the machine:
v2.0.50727
Другие вопросы по тегам