Avec Microsoft modifiant le modèle des entrées de Registre dans ses dernières versions, comment détecter si Visual C++ 2017 Redistributable est installé sur une machine?
Mon objectif est d'installer VC++ 2015Redist car le logiciel est écrit en utilisant VS2015. Si je parviens à détecter VC++ 2017Redist sur une machine, je saute mon installation de VC++ 2015Redist
L'installation des Redistributables Visual Studio 2017 met à niveau et remplace toute installation existante des Redistributables 2015. J'ai vérifié cela, et l'installation de 2015 disparaît de "Ajout/Suppression de programmes", et les valeurs de registre (voir ci-dessous) ont leurs numéros de version mis à jour. De plus, par MSDN , les Redistributables VC++ 2017 ont la compatibilité binaire avec la version 2015.
Il est possible de vérifier si 2015 ou 2017 sont installés en vérifiant les clés de registre décrites ci-dessous. C'est pour un système x64, regardez sans le Wow6432Node
pour un système 32 bits.
Pour VC++ 64 bits redistribuable
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64
Pour VC++ 32 bits redistribuable
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86
Les propriétés et valeurs sont les mêmes (même format) pour les installations 32 et 64 bits. Valeurs d'utilisation du registre:
Value 2015 2017
Name Val. Data Val. Data
-------- --------- ---------
Major 14 14
Minor 0 13
Bld 23026 26020
Notez que les numéros @Minor et build (@Bld) de 2017 continuent de changer à mesure que de nouveaux correctifs sont mis à jour.
Je suggérerais, si la vérification d'un minimum de 2015 est installé, il suffit de vérifier la clé et que la version @Major est 14.
Si vous recherchez 2017, avec l'intention de faire une mise à niveau si elle n'existe pas, vérifiez simplement le numéro @Bld, et si ce n'est pas au moins la version qui peut être installée, alors allez-y et installez la version 2017 actuelle. Notez que les futures mises à jour de la version @Minor et @Bld sont probables - j'ai un autre ordinateur sur lequel la version 14.11.25325 est installée, également une version 2017.
VC redistribuable est désormais joint pour VisualStudio 2015-2019 . Si vous essayez d'installer une "plus ancienne" (par exemple juste 2015) si vous avez une version plus récente (par exemple 2017), vous obtenez une erreur (fin de cette réponse).
Comme l'a écrit @CJBS, il s'écrit dans les registres, mais malheureusement j'ai remarqué un autre lieu d'enregistrement (alors vérifiez-le également):
Pour VC++ 32 bits redistribuable
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86
Pour VC++ 64 bits redistribuable
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64
Je suggère de lire l'enregistrement @Bld DWord et de le comparer pour déterminer si vous avez besoin d'une version plus récente: 2015 (Bld = 23026) 2017 (Bld = 26020) 2019 (Bld = 27820)
Image du message d'erreur : 0x80070666 - Une autre version de ce produit est déjà installée. L'installation de cette version ne peut pas continuer...