Где Visual Studio 2017 хранит свою конфигурацию?

В VS 2015 и ранее настройки были сохранены в реестре, например. HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config. В VS 2017 для поддержки нескольких экземпляров VS параметры были удалены из реестра, согласно этот пост.

Я ранее редактировал реестр, чтобы заставить Dark Theme, когда Windows находится в режиме High Contrast, в соответствии с этим SO-ответом. Теперь я хочу сделать то же самое в VS 2017, но не могу найти, где хранятся настройки, чтобы внести это изменение.

Где хранятся эти настройки для Visual Studio 2017?

Ответ 1

Я нашел ответ в этом сообщении в блоге:

Посмотрите, как пустой обычный HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0 на моей машине и обратите внимание, что нет ключа 15.0_Config:

Regedit

Вместо этого приватный реестр VS 2017 хранится в папке AppData:

AppData

К счастью, вы можете использовать regedit.exe для загрузки частного улья. Вам нужно выбрать HKEY_USERS node и щелкнуть меню "Файл" > "Наплыв...". Вы выбираете файл privateregistry.bin, указываете имя в улье (я ввел "VS2017PrivateRegistry" ), и теперь вы можете увидеть 15.0_Config-ключ, заполненный как обычно (обратите внимание: используйте File > Unload Hive, когда это будет сделано):

Частный реестр

Используя это руководство, я смог загрузить частный реестр, внести изменения из ответа SO, упомянутого ранее, выгрузить улей и запустить VS 2017 с помощью Dark тема!

EDIT: мне пришлось слегка модифицировать PowerShell script, который я использовал для редактирования реестра, вот обновленная версия, если кому-то интересно:

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'

Ответ 2

Я реализовал пакетный подход, который делает все автоматически, а также поддерживает тему с высоким контрастом, если вам нужно восстановить ее по любой причине.

Вы можете найти его на https://randomshaper.blogspot.com.es/2017/06/visual-studio-2017-high-contrast-hack.html

Ответ 3

Проверяя журнал из Process Monitor, вы можете увидеть его, проверяя тот же раздел реестра.

VS access key access

Он просто не создан. Вам нужно создать его. Часть имени (e3d5273c) может отличаться на вашей машине.

Ответ 4

Следующий 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.