41 votes

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

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

J'ai précédemment modifié le registre pour forcer le thème sombre lorsque Windows est en mode Contraste élevé, selon cette réponse SO . Maintenant, je veux faire la même chose dans VS 2017 mais je ne trouve pas où les paramètres sont stockés, pour faire ce changement.

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

77voto

Geir Sagberg Points 436

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

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

Regedit

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

AppData

Heureusement, vous pouvez utiliser regedit.exe pour charger un répertoire de stockage privé. Vous devez sélectionner le nœud HKEY_USERS, et cliquer sur le menu Fichier > Charger le répertoire de stockage . Vous sélectionnez le fichier privateregistry.bin, donnez un nom au répertoire de stockage (j'ai entré "VS2017PrivateRegistry") et vous pouvez maintenant voir la clé 15.0_Config remplie comme d'habitude (note : utilisez Fichier > Décharger le répertoire de stockage lorsque vous avez terminé) :

Private registry

En utilisant ce guide, j'ai pu charger le registre privé, effectuer les changements de la réponse de SO mentionnée plus haut Déchargez la ruche et démarrez VS 2017 avec le thème sombre !

EDIT : J'ai dû légèrement modifier le script PowerShell que j'ai utilisé pour modifier le registre, voici la version mise à jour si cela intéresse quelqu'un :

EDIT2 : Maintenant modifié pour inclure le chargement du registre privé automatiquement aussi, y compris une collection de 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'

0 votes

Bonjour. Merci pour votre powershell script. Seulement les chemins de fichiers et le chemin du registre ne semblent pas fonctionner dans tous les cas. J'utilise la version release de Visual Studio 2017 et le chemin du registre privé et le chemin des paramètres du thème dans le registre. Pour que cela fonctionne, j'ai dû modifier le script comme ceci :

1 votes

@jacobdeboer Oui, les chemins peuvent être légèrement différents dans votre cas. Je vais ajouter une note à ce sujet.

0 votes

Est-il possible de charger ces ruches et de les modifier par programme ? La classe de registre Win32 en C# ne semble pas le permettre, sauf erreur de ma part ?

3voto

Doodler Points 137

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

Vous pouvez le trouver à l'adresse suivante https://randomshaper.blogspot.com.es/2017/06/visual-studio-2017-high-contrast-hack.html

1voto

Sergey Vlasov Points 2615

Les éléments suivants VS2017PrivateRegistry.cmd Le fichier batch charge les clés de registre de toutes les instances de Visual Studio 2017 sous la forme HKLM_TMPVS_[id], lance l'éditeur de registre pour que vous puissiez apporter des modifications aux paramètres de Visual Studio et décharge les clés lorsque vous fermez l'éditeur de 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 de Visual Studio 2017 en cours d'exécution avec des processus en arrière-plan, puis exécutez ce fichier avec des droits d'administrateur.

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

0voto

Paweł Łukasik Points 2294

En vérifiant le journal de Moniteur de processus vous pouvez voir qu'il vérifie la même clé de registre.

VS registry key access

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

0 votes

Intéressant, mais je ne sais pas pourquoi il cherche là, ainsi que dans ses registres privés (voir ma réponse). Je n'irai pas plus loin car j'ai trouvé une solution.

0voto

Hawkez Points 348

La véritable solution à ce problème serait que l'équipe de Visual Studio permette aux développeurs de définir le thème. Si vous souhaitez que cela soit corrigé, rendez-vous sur ce rapport de problème VS, suivez-le et faites un commentaire pour le soutenir. Le problème est actuellement à l'étude.

Visual Studio oblige l'utilisateur à utiliser son thème "High Contrast" lorsque Windows est en mode "High Contrast".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X