Где Visual Studio 2017 хранит свои настройки?
В VS 2015 и более ранних версиях настройки хранились в реестре, например HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config
, В VS 2017, для поддержки нескольких экземпляров VS, настройки были удалены из реестра, согласно этому посту.
Ранее я редактировал реестр, чтобы принудительно использовать Dark Theme, когда Windows находится в режиме высокой контрастности, согласно этому ответу SO. Теперь я хочу сделать то же самое в VS 2017, но не могу найти, где хранятся настройки, чтобы внести это изменение.
Где хранятся эти настройки для Visual Studio 2017?
5 ответов
Я нашел ответ в этом сообщении в блоге:
Посмотрите, насколько пустым является обычный ключ HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0 на моем компьютере, и обратите внимание, что нет ключа 15.0_Config:
Вместо этого личный реестр VS 2017 хранится в вашей папке AppData:
К счастью, вы можете использовать regedit.exe для загрузки частного улья. Вам нужно выбрать узел HKEY_USERS и нажать меню "Файл"> "Загрузить куст...". Вы выбираете файл privateregistry.bin, присваиваете имя кусту (я ввел "VS2017PrivateRegistry"), и теперь вы видите, что ключ 15.0_Config заполняется как обычно (примечание: используйте File > Unload Hive, когда закончите):
Используя это руководство, я смог загрузить личный реестр, внести изменения в ответ SO, упомянутый ранее, выгрузить улей и запустить VS 2017 с Темной темой!
РЕДАКТИРОВАТЬ: Мне пришлось немного изменить скрипт PowerShell, который я использовал для редактирования реестра, вот обновленная версия, если кому-то интересно:
РЕДАКТИРОВАТЬ 2: Теперь изменено, чтобы автоматически включать загрузку частного реестра, включая коллекцию 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'
Я реализовал подход, основанный на пакетных файлах, который делает все автоматически, а также создает резервную копию высококонтрастной темы на случай, если вам потребуется восстановить ее по какой-либо причине.
Вы можете найти его по адресу https://randomshaper.blogspot.com.es/2017/06/visual-studio-2017-high-contrast-hack.html
Следующий пакетный файл https://vlasovstudio.com/etc/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".
Реальным решением этой проблемы было бы для команды Visual Studio позволить разработчикам установить тему. Если вы заинтересованы в получении исправления, перейдите к отчету о проблемах VS, следуйте ему и оставьте комментарий в его поддержку. В настоящее время он находится на рассмотрении.
Проверяя журнал в Process Monitor, вы можете увидеть, что он проверяет тот же ключ реестра.
Это просто не создано. Вы должны создать это. Часть имени (e3d5273c
) может отличаться на вашей машине.