2017-08-14 3 views
1

J'utilise le projet WixSetup pour mon application, qui génère des msi avec succès. Maintenant, je dois ajouter quelques autres Détails-WixSetup - Vérifiez les pré-requis et l'ajout de redistribuable?

Question 1: Vérifiez les pré-requis avant l'installation: En tant que partie de pré-requis, je dois vérifier quelques conditions dans le fichier product.wxs (similaires à. NET Framework 4.0)

<PropertyRef Id="NETFRAMEWORK40FULL"/> 
<Condition Message="[ProductName] requires .NET Framework 4.0.">Installed OR NETFRAMEWORK40FULL</Condition> 

Comment ajouter une condition pré-requise dans le fichier product.wxs avec la vérification d'entrée de registre?

Question 2: Ajout de packages redistribuables dans msi , je dois aussi ajouter quelques éléments redistribuables dans msi, qui seront livrés avec msi. Comment puis-je ajouter ces paquets dans msi?

Répondre

1

Pour le premier point, la documentation WiX couvre ce scénario précis. Voir http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/read_a_registry_entry.html

Avec votre deuxième question, cela se fait généralement en créant un bundle d'amorçage, qui est un projet wix distinct qui parcourt successivement une série de fichiers .msi. Les projets Bootstrapper sont généralement assez simples à mettre en place.

+0

Est-ce possible sans bundle de bootstrappeur? Directement dans le projet d'installation de msi? – 439

+0

Vous pouvez démarrer certaines actions personnalisées, mais cela risquerait de briser complètement la nature transactionnelle de votre programme d'installation, car vous ne travaillez plus en cours de processus et vous ne pouvez pas récupérer en toute sécurité à partir des échecs d'installation/mise à jour/désinstallation. Si vous souhaitez automatiser l'installation de MSI de dépendance, la méthode correcte consiste à utiliser un programme d'amorçage, et c'est facile. –

+0

Patrick - J'ai accepté votre réponse. Cependant, j'ai une autre question, similaire à celle du registre, comment puis-je vérifier la présence de dll sur une machine d'instllation sur un emplacement particulier (par exemple% SystemRoot% \ System32 \ inetsrv)? – 439