43

在 VS 2015 及更早版本中,设置存储在注册表中,例如HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config. 根据这篇文章,在 VS 2017 中,为了支持多个 VS 实例,设置已从注册表中移出。

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

Visual Studio 2017 的这些设置存储在哪里?

4

5 回答 5

78

我在这篇博文中找到了答案:

查看我机器上的常规 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0 键有多空,并注意没有 15.0_Config 键:

注册编辑

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

应用程序数据

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

私人登记处

使用本指南,我能够加载私有注册表,从前面提到的 SO 答案中进行更改,卸载配置单元并使用黑暗主题启动 VS 2017!

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

EDIT2:现在修改为包括自动加载私有注册表,包括允许卸载配置单元的垃圾收集:

注意:您必须为用户名 ( 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'
于 2016-12-13T13:41:50.717 回答
3

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

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

于 2017-06-22T03:58:20.113 回答
1

以下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 实例,然后以管理员权限运行此文件。

有关更多详细信息,请参阅更改 Visual Studio 2017 私有注册表设置

于 2017-06-29T08:27:29.570 回答
0

通过检查进程监视器的日志,您可以看到它检查了相同的注册表项。

VS 注册表项访问

它只是没有创建。您需要创建它。您的机器上的名称 ( e3d5273c) 部分可能不同。

于 2016-12-13T11:53:20.980 回答
0

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

当 Windows 处于高对比度模式时,Visual Studio 会强制用户使用其高对比度主题

于 2018-03-30T17:52:41.387 回答