web-dev-qa-db-fra.com

Comment détecter si Visual C ++ 2017 Redistributable est installé

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

12
Manjunath

L'installation redistribuable VC++ 2017 met à niveau/REMPLACE l'installation 2015

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.

Clés:

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.

9
CJBS

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...

0
Mailos