Visual Studio uses a private registry hive instead of "polluting" the system registry - typically found somewhere like this:
C:\Users\Abx\AppData\Local\Microsoft\VisualStudio\15.0_4b0ba1c0\privateregistry.bin
[In order to determine installed extensions we need to look at the following key:
Software\Microsoft\VisualStudio\15.0_4b0ba1c0\ExtensionManager\EnabledExtensions]
What is the simplest way to load and access this file by key in C#?
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.
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")