Visual Studio uses a private registry hive instead of \"polluting\" the system registry - typically found somewhere like this:
C:\\Users\\Abx\\AppData\\Local\\
I just had a similar problem and found this SO posting. In my experience you have to use the x86 configuration for your project or else you will encounter an exception. I have adapted the code to your problem.
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(...)
In addition to the above method, it seems to be possible to use the "normal" .Net methods for registry access after "CreateForApplication" has been called. Just use something like this:
Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\VisualStudio\15.0\ExtensionManager\EnabledExtensions")
To manually review, you can use the regedit.exe application to load the privateregistry.bin file by doing the following:
To programmatically access the key RegLoadAppKey is indeed your best bet.