2015-04-20 1 views
1

Nous avons actuellement un MSI en production (disons Broker.msi). Dans le cadre de l'installation, le MSI (défini dans Wix) crée une nouvelle clé de registre (Broker) et ajoute 2 sous-clés en dessous. Après l'installation, lorsque l'utilisateur enregistre notre produit, une clé de registre supplémentaire appelée "Key3" est ajoutée sous le nœud "Broker" . S'il vous plaît noter que "Key3" contient la clé d'enregistrement qui est extrêmement important & accédé par d'autres couches du produit.Comment empêcher la suppression du registre dans le cadre de la désinstallation de MSI déjà installée?

[Registre Structure post-installation & registre]

HKLM \ Software \ Microsoft \ Broker

  • Touche1 (ajouté par l'installateur)

  • Touche2 (ajouté par l'installateur)

    Clé3 (ajouté lorsque l'utilisateur enregistre l'aiguillage
  • UCT)

[Wix Code Snippet]

<Component Id="RegistryEntries" Guid="*" Win64="$(var.WIN64_COMPONENT)"> 
 
      <RegistryKey Root="HKLM" Key="Software\Microsoft\Broker" Action="createAndRemoveOnUninstall"> 
 
      <RegistryValue Type="string" Name="Key1" Value="1rp1users" KeyPath="yes"/> 
 
      <RegistryValue Type="string" Name="Key2" Value="http://windowsbackup/m1" /> 
 
      </RegistryKey> 
 
    </Component> 
 
.... 
 
<ComponentRef Id="RegistryEntries" />

Problème: Jusqu'à présent, puisque nous utilisions rapiéçage, nous force face à des problèmes avec la mise à niveau. À partir de la prochaine version, nous souhaitons passer aux mises à niveau majeures, mais le plus gros défi est le suivant: lors d'une mise à niveau majeure, l'ancien produit sera désinstallé. Conformément à l'extrait wix, l'élément d'action de l'élément de registre "Broker" est "CreateAndRemoveOnUninstall", de sorte que l'intégralité du nœud "Broker" est supprimée, ainsi que la sous-clé "Key3". Si je mets à jour l'action "Créer", le problème sera résolu avec les nouvelles installations, mais comme le msi est déjà en production, comment l'empêcher de supprimer le registre dans le cadre d'une mise à niveau majeure pour les produits existants?

Répondre

1

Vous devez implémenter le modèle Remember Property. Cela entraînera le nouveau MSI à récupérer les données avant que la mise à niveau majeure supprime l'ancienne version, puis réapplique à la fin.

+0

Excellent. Cela a fait l'affaire. Merci Christopher! – Ramya