Visual Studio usa una sección de registro privada en lugar de "contaminar" el registro del sistema, que normalmente se encuentra en algún lugar como este:
C:\Users\Abx\AppData\Local\Microsoft\VisualStudio\15.0_4b0ba1c0\privateregistry.bin
[Para determinar las extensiones instaladas, debemos mirar la siguiente clave: Software\Microsoft\VisualStudio\15.0_4b0ba1c0\ExtensionManager\EnabledExtensions ]
¿Cuál es la forma más sencilla de cargar y acceder a este archivo por clave en C#?
Para revisar manualmente, puede usar la aplicación regedit.exe para cargar el archivo privateregistry.bin haciendo lo siguiente:
Acceder mediante programación a la clave RegLoadAppKey es, de hecho, su mejor apuesta.
Acabo de tener un problema similar y encontré esta publicación SO. En mi experiencia, debe usar la configuración x86 para su proyecto o, de lo contrario, encontrará una excepción. He adaptado el código a tu problema.
ExternalSettingsManager ext = ExternalSettingsManager.CreateForApplication(@"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"); SettingsStore store = ext.GetReadOnlySettingsStore(SettingsScope.UserSettings); var propNames = store.GetPropertyNames(@"ExtensionManager\EnabledExtensions"); store.GetString(...)Además del método anterior, parece posible usar los métodos .Net "normales" para acceder al registro después de llamar a "CreateForApplication". Solo usa algo como esto:
Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\VisualStudio\15.0\ExtensionManager\EnabledExtensions")