2017-08-17 4 views
0

Je suis en train d'installer visual C++ 2013 avec bootstrapper, donc dans la balise paquet je suis en utilisant le code suivant pour installer visual C++ 2013 comme suitcomment vérifier visuel C++ 2013 est installé ou non dans le programme d'amorçage (wix)?

<ExePackage Id="VC2013" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q" SourceFile=".\vcredist_x862013.exe" /> 

actuellement il installera toujours, indépendamment du fait qu'il soit installé ou non, comment puis-je mettre vérifier si elle est installée ou non?

+0

Pourquoi est-ce un problème? Sûrement, Vcredist fait la bonne chose quand il est rediffusé. –

+0

je pense que sa réinstallation à chaque fois, ce qui prend trop de temps pour le processus d'installation –

Répondre

2

Dans votre paquet, ajoutez les lignes suivantes:

<util:RegistrySearch Id="VCRedistTest64" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID_HERE}" Result="exists" Variable="VCR64Present" Win64="yes"/> 
<util:RegistrySearch Id="VCRedistTest32" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID_HERE}" Result="exists" Variable="VCR32Present" Win64="no"/> 

Remettez en place les {GUID_HERE} balises avec le GUID correct pour Visual C++ 2013. Pour le trouver, sur une machine avec Visual C++ déjà installateur, ouvrez votre registre et accédez à:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ 

Dans cette clé, il y aura plusieurs sous-clés, où chaque sous-clé correspond à un paquet de logiciel installé. Recherchez la clé qui correspond au Visual C++ 2013 et copiez le nom de la clé, qui est le GUID que vous devez insérer dans le code ci-dessus.

Enfin, modifiez votre élément Exepackage à:

<ExePackage Id="VC2013" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q" SourceFile=".\vcredist_x862013.exe" DetectCondition="(VCR32Present OR VCR64Present)/> 

Cela permettra à Windows de détecter si Visual C++ est déjà installé, et empêchera votre installateur de ré-installer.

En outre, ajouter ce qui suit au niveau supérieur tag "Wix":

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"