Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
210 views
in Technique[技术] by (71.8m points)

Where does Visual Studio 2017 store its config?

In VS 2015 and earlier, settings were stored in the registry, e.g. HKEY_CURRENT_USERSOFTWAREMicrosoftVisualStudio14.0_Config. In VS 2017, to support multiple instances of VS, the settings were moved out of the registry, according to this post.

I have previously been editing the registry to force Dark Theme when Windows is in High Contrast mode, according to this SO answer. Now I want to do the same in VS 2017 but cannot find where the settings are stored, to make this change.

Where are these settings stored for Visual Studio 2017?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I found the answer in this blog post:

See how empty is the regular HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio15.0 key on my machine and notice that there is no 15.0_Config key:

Regedit

Instead, the VS 2017 private registry is stored in your AppData folder:

AppData

Fortunately, you can use regedit.exe to load a private hive. You need to select the HKEY_USERS node, and click the File > Load Hive… menu. You select the privateregistry.bin file, give a name to the hive (I entered “VS2017PrivateRegistry”) and now you can see the 15.0_Config key populated as usual (note: use File > Unload Hive when done):

Private registry

Using this guide, I was able to load the private registry, do the changes from the SO answer mentioned earlier, unload the hive and start VS 2017 with the Dark Theme!

EDIT: I had to slightly modify the PowerShell script I used to edit the registry, here is the updated version if anyone is interested:

EDIT2: Now modified to include the loading of the private registry automatically as well, including a garbace collection to allow unloading the hive:

NOTE: You have to find your own correct path for the user name (C:UsersGeir) and VS version (15.0_8165452c).

New-PSDrive HKU Registry HKEY_USERS

reg load 'HKUVS2017PrivateRegistry' "C:UsersGeirAppDataLocalMicrosoftVisualStudio15.0_8165452cprivateregistry.bin"

$HighConstrastTheme = "HKU:VS2017PrivateRegistrySoftwareMicrosoftVisualStudio15.0_8165452c_ConfigThemes{a5c004b4-2d4b-494e-bf01-45fc492522c7}"
$DarkTheme = "HKU:VS2017PrivateRegistrySoftwareMicrosoftVisualStudio15.0_8165452c_ConfigThemes{1ded0138-47ce-435e-84ef-9ec1f439b749}"

Remove-Item -Path $HighConstrastTheme -Recurse
Copy-Item -Path $DarkTheme -Destination $HighConstrastTheme -Recurse

[gc]::collect()

reg unload 'HKUVS2017PrivateRegistry'

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...