2016-12-13 2 views
23

В VS 2015 и ранее настройки были сохранены в реестре, например. HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config. В VS 2017, чтобы поддерживать несколько экземпляров VS, настройки были удалены из реестра, согласно this post.Где Visual Studio 2017 хранит свою конфигурацию?

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

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

ответ

42

Я нашел ответ в this blog post:

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

Regedit

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

AppData

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

Private registry

Используя это руководство, я был в состоянии загрузить частный реестр, сделать изменения от the SO answer mentioned earlier, выгрузить улей и начать VS 2017 с Темной темой!

EDIT: мне пришлось немного изменить сценарий 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' 
+0

Привет. Спасибо за ваш сценарий powershell. Во всех случаях, похоже, не работают только пути к файлам и путь к реестру. Я использую версию выпуска Visual Studio 2017 и путь к частному реестру и путь к настройкам темы в реестре. Чтобы выполнить эту работу, мне пришлось сменить сценарий следующим образом: – jacobdeboer

+1

@jacobdeboer Да, пути могут быть немного разными для вашего случая. Я добавлю об этом примечание. –

+0

Загружает эти ульи и редактирует их программно? Класс реестра C# Win32, похоже, не поддерживает это, если я не ошибаюсь? – Shiv

0

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

VS registry key access

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

+0

Интересно, не уверен, почему он смотрит там, а также в его частных реестрах (см. Мой ответ). Я не буду продолжать это, потому что нашел решение. –

1

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

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

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.