2017-09-12 9 views
3

Microsoft modifie le modèle des entrées de registre dans ses dernières versions. Comment puis-je détecter si Visual C++ 2017 Redistributable est installé sur une machine?Comment détecter si Visual C++ 2017 Redistributable est installé

Mon but est d'installer VC++ 2015Redist puisque le logiciel est écrit en utilisant VS2015. Si je peux détecter avec succès VC++ 2017Redist sur une machine, alors je saute mon installation de VC++ 2015Redist

+0

Mais ... pourquoi? Dans quel but? Si votre programme en a besoin, expédiez le redistribuable avec votre programme. Si votre programme ne fonctionne pas, alors ne le faites pas. –

+2

@DietrichEpp Je pense que OP veut que le paquet d'installation vérifie si le redistribuable est déjà installé, auquel cas cette étape peut être ignorée. – Simple

+0

@Simple: Je veux entendre la réponse de l'OP. –

Répondre

-1

Vous résolvez le mauvais problème. Vous essayez d'installer un redistribuable périmé qui ne convenait que pour VS2015 (Toolset v140). Au lieu de cela, installez le redistribuable VS2017 actuel (Toolset v141). Il est rétrocompatible avec VS2015.

+2

Cela échouera très probablement aussi, quand la machine aura déjà installé VS2345 redistribuable, donc l'OP sera dans la même situation que maintenant (à moins qu'il ne remballe son application avec le dernier installateur redistribuable à la date de sortie MS). – Ped7g

+0

@ Ped7g: Vrai, mais c'est par conception. Vous ne pouvez pas détecter les clés de registre de VS2345. Vous essayez d'installer la dernière version connue de vous. C'est aux futurs installateurs de bloquer les installateurs obsolètes. – MSalters

+0

Donc la réponse à la question originale est, que "son installateur échoue" ... mais cela peut échouer pour diverses raisons, et l'échec dû à plus distributable installé est bon à ignorer, car ils devraient être rétrocompatibles, mais différents échecs comme l'espace insuffisant n'est pas bon à ignorer ... donc si l'OP reformulera sa question, il est toujours dans une situation problématique, incapable de dire si l'échec est correct ou non. (Je n'ai pas de réponse non plus, je ne travaille pas avec les technologies MS depuis plus de 10 ans, je suis simplement curieux, et je me suis senti obligé de souligner que votre réponse ne mène nulle part) – Ped7g