web-dev-qa-db-fra.com

Comment désactiver les mises à jour automatiques de l'extension Visual Studio en mode sans assistance?

Je peux désactiver la mise à jour automatique des extensions pour une extension particulière via le gestionnaire Extensions et mises à jour dans Visual Studio . Mais que dois-je faire lorsque je souhaite désactiver les mises à jour automatiques pour l'extension FOO sur tous les ordinateurs de mon équipe en mode sans assistance?

Je veux une option pour utiliser AD GPO ou modifier le Registre Windows pour empêcher une extension Visual Studio spécifique de recevoir des mises à jour automatiques. Est-ce même possible maintenant?

9
bahrep

J'arrête VS de vérifier complètement les mises à jour.

Pour VS2019:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0

Pour VS2017:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0
2
NeoBeum

Pour arrêter les mises à jour automatiques des extensions Visual Studio Marketplace vers les serveurs TFS On-Prem

Exécuter la commande ci-dessous dans 1Tfs_configuration1

update [Tfs_Configuration].[dbo].[tbl_JobDefinition]
set EnabledState = 2 
where PartitionId > 0 and JobId = 'A8F60BD0-BCBA-4343-82B3-FD6B40D657D8' 

Il devrait arrêter les mises à jour automatiques de l'extension avec JobId A8F60BD0-BCBA-4343-82B3-FD6B40D657D8.

1
Divyanshu mehta

J'ai fait face à un problème similaire aujourd'hui. Je n'ai pas de solution entièrement automatisée car je n'en ai pas besoin, mais je pense que j'ai collecté suffisamment d'informations pour que vous puissiez préparer correctement une petite application qui peut le faire.

À partir de Visual Studio 2017, la configuration n'est plus stockée dans le registre central mais dans un fichier privé, situé à %LOCALAPPDATA%\Microsoft\VisualStudio\15.0_ <somekind_of_id>\privateregistry.bin. Je ne sais pas comment déterminer somekind_of_id (dans mon cas, c'est 3eeca950, pour plus de simplicité, j'ai conservé une telle valeur dans tous les chemins, remplacez-la par la vôtre). Ce fichier est verrouillé par Visual Studio, il doit donc être fermé avant d'essayer de le modifier (cela prend VS quelques secondes pour libérer le verrou).

Ce fichier peut être importé dans une ruche d'application en utilisant RegLoadAppKeyA . Cette fonction créera un HKEY qui peut être utilisé ensemble RegSetKeyValueA pour modifier les valeurs dont vous avez besoin.

La clé qui vous intéresse est Software\Microsoft\VisualStudio\15.0_3eeca950\ExtensionManager\ExtensionAutoUpdateEnrollment. Sous elle sont répertoriées toutes les extensions installées, chacune en tant que valeur DWORD, où un 0 valeur signifie pas de mise à jour automatique, 1 signifie qu'il est automatiquement mis à jour.

Chaque valeur d'extension est nommée d'après l'ID de l'extension, ainsi que la version actuelle. Par exemple WixToolset.VisualStudioExtension.Dev15,0.9.21.62588.

Vous pouvez vérifier cet ID dans le manifest.json fichier du package d'extension (vous pouvez ouvrir les fichiers .vsix en utilisant 7-Zip par exemple). Si vous ne disposez pas du fichier .vsix, vous pouvez trouver les données d'extension sous %LOCALAPPDATA%\Microsoft\VisualStudio\15.0_3eeca950\Extensions\.

1
cbuchart