2017-09-25 2 views
0

J'essaie d'installer les redistribuables Visual C++ avec le .msi pour mon application. Cependant, quand je vais installer le projet, je reçois toujours une erreur "Une autre installation est en cours d'exécution". Voici mon fichier bundle.wxs:Comment installer les fichiers vcredist.exe à partir de Wix Setup Bootstrap Project

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Bundle Name="Application" Version="1.0.0.0" Manufacturer="Manufacturer" UpgradeCode="6c5daa41-4ce9-4f20-94b2-2471a6932542"> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <!-- TODO: Define the list of chained packages. --> 
     <!-- <MsiPackage SourceFile="path\to\your.msi" /> --> 
     <PackageGroupRef Id="MyPackage" /> 
     <MsiPackage Id="MyApplication" SourceFile=".\Application.msi"/> 
    </Chain> 
</Bundle> 
<Fragment> 
    <PackageGroup Id="MyPackage"> 
     <ExePackage Id="VisualCPlusPlus32Bit" 
       DisplayName="Microsoft Visual C++" 
       SourceFile=".\vcredist_x86.exe" 
       Vital="no" 
       InstallCommand="/q /ACTION=Install" 
       DetectCondition="NOT VersionNT64"/> 
     <ExePackage Id="VisualCPlusPlus64Bit" 
       DisplayName="Microsoft Visual C++" 
       SourceFile=".\vcredist_x64.exe" 
       Vital="no" 
       InstallCommand="/q /ACTION=Install" 
       DetectCondition="VersionNT64"/> 
    </PackageGroup> 
</Fragment> 
</Wix> 

Je l'ai regardé les documents pour Wix et ce tutorial mais je ne peux toujours pas obtenir les bibliothèques Visual C++ installé d'abord sans deux installations exécuter simultanément. Merci!

+0

Etes-vous sûr que ce sont les bonnes commandes pour exécuter vos installations? J'ai plusieurs versions de vcredist avec différentes commandes d'installation (merci MS) comme "/ install/quiet/norestart", "/ Q/C: " msiexec/i vcredist.msi/qn "", "/ quiet". Vous pouvez également consulter le fichier journal créé dans% temp% lors de l'exécution de votre programme d'amorçage, voir à quel paquet il échoue. –

+0

@BrianSutherland Il semble que l'installation est appelée correctement lorsque la fenêtre d'installation Visual C++ apparaît. Mais cela n'apparaît qu'après l'écran d'installation de mon application. On dirait que le fichier vcredist.exe n'est pas terminé avant l'exécution de mon fichier .msi. – MisterMystery

+0

J'ai peut-être eu ce problème avec l'un des paquets de vcredist à un moment donné. Ce qui se passe est que l'exe décompresse et lance un autre programme puis se ferme alors que l'autre programme continue (l'installation réelle) le programme d'amorçage pense que l'installation est terminée puisque le programme lancé se termine par 0 et continue d'installer d'autres paquets. Vous devriez être capable de tester en exécutant les installations à partir de la ligne cmd. Vous pouvez installer vcredist encore et encore, donc ne vous inquiétez pas de l'exécuter plus d'une fois pour tester. –

Répondre

0

Voir How To: Install the Visual C++ Redistributable with your installer. Cette approche utilise un module de fusion pour inclure les redistribuables Visual C++ avec votre msi au lieu d'exécuter vcredist en tant que programme d'installation distinct.

+0

Cela m'a conduit dans la bonne direction. J'ai été en mesure d'obtenir [cette] solution (https://docs.microsoft.com/en-us/cpp/ide/walkthrough-deploying-a-visual-cpp-application-to-an-application-local-folder) travailler pour moi. Merci! – MisterMystery