Я пытаюсь найти надежный и перспективный способ определения установленных версий Visual Studio с помощью С#.
Моей первой идеей было использовать реестр. Но на своем ПК я обнаружил несколько ключей с именем VisualStudio
, но не относящихся к полной установке. Например, я установил VS 2019 и VS Build Tools 2017, но в реестре я нахожу 14.0
, 15.0
, 16.0
, 16.1
и т. д.
Есть ли какой-нибудь Visual-Studio-API, который можно было бы использовать?
Более глубокий смысл моего вопроса заключается в том, что я должен сделать следующий вызов, поддерживающий несколько версий VS: var developmentToolsEnvironment = (DTE)Marshal.GetActiveObject("VisualStudio.DTE.15.0");
Type.GetTypeFromProgID("VisualStudio.DTE.x.0")
и посмотреть, что не равно нулю. - person stuartd   schedule 23.07.2019HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
? Должно ли это быть достаточно безопасным? - person mu88   schedule 23.07.2019