Ce doit être un besoin commun mais je trouve à peine à aucune référence sur le web ...WiX et partagées, les composants versionnés
J'ai un produit qui a trois ensembles de composants, installés sur un le serveur, un sur la tête du Web, et un sur la machine du développeur. Les trois ensembles pourraient être installés sur une machine et devraient coexister pacifiquement.
Comme je l'avais hier, chaque composant était installé dans un endroit différent et fonctionnait bien, mais c'était juste temporaire car certains fichiers, assemblages gac'd et paramètres de registre devaient être partagés. Maintenant, j'ai fait un module de fusion des composants partagés et ce nouveau scénario de fusion-module fonctionne bien pendant l'installation dans des conditions idéales et j'ai toutes les mises à jour majeures d'un seul msi. Le problème est lors de l'installation d'un msi lorsque la version du module de fusion dans l'installation msi est inférieure à celle de la version déjà installée (d'un autre msi) - la version la plus récente est remplacée par l'ancienne version! En outre, lors de la routine de désinstallation de l'un des trois msis, le contenu partagé est supprimé même s'il est toujours utilisé par les autres composants installés. Pour la plupart, je comprends pourquoi j'obtiens ce comportement, mais je ne comprends pas comment je suis censé configurer mes installateurs pour que ces composants puissent être partagés SANS avoir un programme d'installation séparé pour les composants partagés . De plus, je ne veux pas non plus d'un gros installateur - cela ne sera pas bien adapté. Ce que je veux, c'est que les trois installateurs contiennent la dernière version des composants du module de fusion disponible au moment de la construction. Au moment de l'installation, si une version plus récente des composants partagés est installée, ne les remplacez pas. Au moment de la désinstallation (et de la mise à niveau), les comptages de référence qui auraient dû faire l'objet d'un suivi détermineront si les éléments partagés doivent être supprimés. Dans le cas où il me manque quelque chose, voici les parties importantes du fichier de fusion: Le numéro de version de mon module de fusion (y dans "wxy") est incrémenté à chaque construction, l'ID du paquet reste fixe, et chaque le composant a Shared="yes"
(bien que je l'ai essayé sans cela aussi bien). J'ai commencé à stocker les différents numéros de version dans le registre, et j'ai pensé peut-être que je pourrais installer conditionnellement la fonctionnalité de module de fusion seulement si le numéro de version dans le registre était absent ou inférieur. Mais les arguments conditionnels ne peuvent pas évaluer w.x.y.z correctement, comme le dit la documentation. La documentation suggère alors AppSearch, mais AppSearch RegistrySearch peut seulement vérifier l'existence, pas la comparaison de numéro de version non plus. Apparemment, le FileSearch peut, mais les numéros de version du fichier d'assemblage ne seront pas incrémentés avec chaque build.
Et j'ai lu que les MergeModules ont de nombreux problèmes - peut-être ce sont eux - mais wixlibs ne semble pas offrir de solutions à ces problèmes non plus.
Alors, quelle est la bonne façon de faire fusionner le versioning du module ??? J'ai trouvé un livre qui a une entrée TOC appelée "fusionner module versioning" sur Amazon mais le livre est épuisé. :-P
Je propose l'affichage croix cette question aux utilisateurs de Wix-liste de diffusion. – saschabeaumont
@JasonKleban vous souvenez-vous d'avoir trouvé une solution à ce problème? J'ai le même problème et je n'arrive pas à trouver de bonnes informations. – tjernigan