2009-10-23 6 views
2

Je suis dans une situation complexe où j'ai deux paquets d'installation. L'un dépend de l'installation de l'autre. Et la désinstallation doit également être effectuée dans le bon ordre.Lancez un avertissement dans WiX

J'ai beaucoup de mal à faire en sorte que les conditions fonctionnent pour empêcher que l'une ne soit désinstallée si l'autre est encore installée. Je continue à faire des conditions qui empêchent la désinstallation n'importe quoi - ce qui est très salissant à nettoyer ...

Tout ce que je veux maintenant est de lever un message d'avertissement lorsqu'une condition est remplie. Quelque chose comme "Attention: vous devez désinstaller X avant de désinstaller ce paquet" avec les boutons Quitter et Ignorer. Est-il possible de faire un avertissement conditionnel dans WiX 3?

+0

Si les applications sont si étroitement couplées, cela ressemble à une application unique? Dans la plupart des cas, je préconise de diviser les applications en fichiers séparés pour faciliter la maintenance et la flexibilité future, mais si le couplage est aussi fort que vous le décrivez, il semble vraiment qu'il soit mieux fourni en un seul paquet. Une solution rapide et sale pourrait être de faire de l'une des configurations une configuration du système (cachée à partir des programmes d'ajout/suppression): http://msdn.microsoft.com/en-us/library/aa367750(VS.85).aspx –

+0

J'ai besoin de ceux-ci pour être des installateurs séparés. Où l'on peut être installé sans l'autre. Mais l'autre dépend du premier. Et ils ne peuvent pas être un seul programme d'installation pour des raisons de licence. – Jono

Répondre

1

Il semble que l'un (produit A) soit un pré-requis pour l'autre (B)? Si c'est le cas, le meilleur moyen serait d'empêcher l'installation de B si A est manquant (pas d'option "ignorer"). Pour ce faire:

  • décider comment pouvez-vous vérifier qu'il existe une (c.-à-entrée spécifique dans le registre créé par l'installateur: comme vous le construisez, vous pouvez l'ajouter comme l'un des composants)
  • ajouter < Propriété > avec recherche approprié (ie RegistrySearch)
  • ajouter <Condition>-<produit>

Un exemple pourrait être trouvé par exemple ici: http://www.mail-archive.com/[email protected]/msg31789.html

En outre, vous pouvez créer un programme d'amorçage pour B qui installe A comme condition préalable (ce qui facilite la tâche aux utilisateurs finaux). Si l'option "ignore" est vraiment un must, je voudrais créer une nouvelle boîte de dialogue avec les boutons text +, et l'ajouter à la séquence d'installation. Mais je ne recommanderais pas cette option, elle ne supporte pas le scénario d'installation silencieuse.

Il existe également une alternative - nouvelle fonctionnalité dans Windows Installer 4.5, une installation multi-paquet. Cependant, je n'ai jamais utilisé ça. Cela oblige également les utilisateurs de votre logiciel à utiliser Windows Installer 4.5 ou version ultérieure (toujours sous Windows uniquement depuis Vista SP2).

Questions connexes