web-dev-qa-db-fra.com

Où Visual Studio 2017 stocke-t-il sa configuration?

Dans VS 2015 et versions antérieures, les paramètres étaient stockés dans le registre, par ex. HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config. Dans VS 2017, pour prendre en charge plusieurs instances de VS, les paramètres ont été déplacés du registre, selon ce message .

J'ai précédemment modifié le registre pour forcer Dark Theme lorsque Windows est en mode Contraste élevé, selon this SO answer . Maintenant, je veux faire la même chose en VS 2017 mais ne peut pas trouver où les paramètres sont stockés, pour effectuer cette modification.

Où sont stockés ces paramètres pour Visual Studio 2017?

34
Geir Sagberg

J'ai trouvé la réponse dans cet article de blog :

Voyez à quel point la clé HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0 est vide sur ma machine et notez qu'il n'y a pas de clé 15.0_Config:

Regedit

Au lieu de cela, le registre privé VS 2017 est stocké dans votre dossier AppData:

AppData

Heureusement, vous pouvez utiliser regedit.exe pour charger une ruche privée. Vous devez sélectionner le nœud HKEY_USERS et cliquer sur le menu Fichier> Charger la ruche…. Vous sélectionnez le fichier privateregistry.bin, donnez un nom à la ruche (j'ai entré "VS2017PrivateRegistry") et maintenant vous pouvez voir la clé 15.0_Config remplie comme d'habitude (remarque: utilisez Fichier> Décharger la ruche une fois terminé):

Private registry

En utilisant ce guide, j'ai pu charger le registre privé, faire les modifications depuis la réponse SO mentionnée plus haut , décharger la ruche et démarrer VS 2017 avec le thème sombre !

[~ # ~] modifier [~ # ~] : J'ai dû modifier légèrement le script PowerShell que j'ai utilisé pour modifier le registre, voici la version mise à jour si quelqu'un est intéressé:

EDIT2 : maintenant modifié pour inclure automatiquement le chargement du registre privé, y compris une collection garbace pour permettre le déchargement de la ruche:

[~ # ~] note [~ # ~] : Vous devez trouver votre propre chemin correct pour le nom d'utilisateur (C:\Users\Geir) et la version 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'
65
Geir Sagberg

J'ai mis en œuvre une approche basée sur des fichiers batch qui fait tout automatiquement et sauvegarde également le thème à contraste élevé au cas où vous auriez besoin de le restaurer pour une raison quelconque.

Vous pouvez le trouver sur https://randomshaper.blogspot.com.es/2017/06/visual-studio-2017-high-contrast-hack.html

3
Doodler

La vraie solution serait que l'équipe de Visual Studio permette aux développeurs de définir le thème. Si vous souhaitez obtenir ce correctif, consultez ce rapport de problème VS et suivez-le et faites un commentaire à l'appui. Il est actuellement à l'étude.

Visual Studio force l'utilisateur à utiliser son thème Contraste élevé lorsque Windows est en mode Contraste élevé

0
Hawkez

En vérifiant le journal de Process Monitor vous pouvez le voir vérifier la même clé de registre.

VS registry key access

Ce n'est tout simplement pas créé. Vous devez le créer. La partie du nom (e3d5273c) peut être différent sur votre machine.

0
Paweł Łukasik

Le fichier de commandes --- VS2017PrivateRegistry.cmd suivant charge toutes les instances de Visual Studio 2017 en tant que HKLM_TMPVS_ [id], démarre l'Éditeur du Registre pour que vous puissiez apporter des modifications dans les paramètres de Visual Studio et décharge les clés lorsque vous fermez l'Éditeur du Registre:

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

Remarque: fermez d'abord les instances Visual Studio 2017 en cours d'exécution avec des processus d'arrière-plan, puis exécutez ce fichier avec les droits d'administrateur.

Voir Modification des paramètres de registre privé de Visual Studio 2017 pour plus de détails.

0
Sergey Vlasov