Visual Studio 2017在哪里存储其配置?

时间:2016-12-13 11:28:40

标签: visual-studio visual-studio-2017 high-contrast

在VS 2015及更早版本中,设置存储在注册表中,例如HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config。在VS 2017中,为了支持多个VS实例,根据this post,设置被移出注册表。

根据this SO answer,我以前一直在编辑注册表以在Windows处于高对比度模式时强制使用黑暗主题。现在我想在VS 2017中做同样的事情,但无法找到存储设置的位置,以进行此更改。

Visual Studio 2017存储了哪些设置?

5 个答案:

答案 0 :(得分:61)

我在this blog post找到了答案:

  

在我的计算机上查看常规HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0密钥的空白状态,并注意到没有15.0_Config密钥:

     

Regedit

     

相反,VS 2017私有注册表存储在AppData文件夹中:

     

AppData

     

幸运的是,您可以使用regedit.exe加载私有配置单元。您需要选择HKEY_USERS节点,然后单击文件>加载配置单元...菜单。你选择了privateregistry.bin文件,为hive命名(我输入了“VS2017PrivateRegistry”),现在你可以看到像往常一样填充的15.0_Config键(注意:完成后使用File> Unload Hive):

     

Private registry

使用本指南,我可以加载私人注册表,从the SO answer mentioned earlier进行更改,卸载配置单元并使用黑暗主题启动VS 2017!

编辑:我不得不稍微修改我用来编辑注册表的PowerShell脚本,如果有人有兴趣,这里是更新版本:

EDIT2 :现在修改为自动加载私有注册表,包括一个garbace集合,允许卸载配置单元:

注意:您必须找到自己的用户名(C:\Users\Geir)和VS版本(15.0_8165452c)的正确路径。

New-PSDrive HKU Registry HKEY_USERS

reg load 'HKU\VS2017PrivateRegistry\' "C:\Users\Geir\AppData\Local\Microsoft\VisualStudio\15.0_8165452c\privateregistry.bin"

$HighConstrastTheme = "HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_8165452c_Config\Themes\{a5c004b4-2d4b-494e-bf01-45fc492522c7}"
$DarkTheme = "HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_8165452c_Config\Themes\{1ded0138-47ce-435e-84ef-9ec1f439b749}"

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

[gc]::collect()

reg unload 'HKU\VS2017PrivateRegistry'

答案 1 :(得分:3)

我已经实现了一种基于批处理文件的方法,可以自动执行所有操作,并且还可以备份高对比度主题,以防您因任何原因需要恢复它。

您可以在https://randomshaper.blogspot.com.es/2017/06/visual-studio-2017-high-contrast-hack.html

找到它

答案 2 :(得分:0)

通过检查来自Process Monitor的日志,您可以看到它检查相同的注册表项。

VS registry key access

它没有创建。你需要创建它。名称(e3d5273c)的部分可能与您的计算机不同。

答案 3 :(得分:0)

以下VS2017PrivateRegistry.cmd批处理文件将所有Visual Studio 2017实例的注册表项加载为HKLM_TMPVS_ [id],启动注册表编辑器以便在Visual Studio设置中进行更改并在关闭注册表编辑器时卸载键:

for /d %%f in (%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*) do reg load HKLM\_TMPVS_%%~nxf "%%f\privateregistry.bin"
regedit
for /d %%f in (%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*) do reg unload HKLM\_TMPVS_%%~nxf

注意:首先使用后台进程关闭运行Visual Studio 2017实例,然后使用管理员权限运行此文件。

有关详细信息,请参阅Changing Visual Studio 2017 private registry settings

答案 4 :(得分:0)

真正的解决方法是让Visual Studio团队允许开发人员设置主题。如果您有兴趣解决这个问题,请转到此VS问题报告,然后关注它并发表评论以支持它。目前正在考虑中。

Visual Studio forces the user to use its High Contrast theme when Windows is in High Contrast mode