2012-02-10 1 views
0

Je crée un programme d'installation pour l'un de nos produits. L'installateur a été fait avec WISE plus tôt mais nous voulions le changer en wix avec cette version. Il est important que nos utilisateurs désinstallent l'ancienne version du produit avant d'installer la nouvelle version et donc je dois vérifier une clé dans le registre qui a été créé par l'ancien installateur (la clé est retirée quand l'ancienne version est désinstallée).Installeur Wix recherchant une clé de registre qui n'existe pas

J'ai un chèque conditionnel dans les wxs comme si:

<!-- Check if older version of Product has been installed. Must be removed by user--> 
<!-- The key below is set by the old installer. If it exists, the old version is there.--> 
<Property Id="OLDKEY"> 
    <RegistrySearch Id="OldRegKey" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Company Product för Product" Name="DisplayName" Type="raw"></RegistrySearch> 
</Property> 

<Condition Message="You need to uninstall the old version of Product before installing this one."> 
    OLDKEY 
</Condition> 

Vous remarquerez un caractère suédois là-dedans. Je soupçonne que cela pourrait être la cause de certains problèmes. C'est ainsi que j'ai configuré depuis que je devais gérer les caractères suédois:

<Product 
    Id="*" 
    Name="$(var.Manufacturer) $(var.ApplicationName)" 
    Language="1033" 
    Version="!(bind.FileVersion.Product.exe)" 
    Manufacturer="$(var.Manufacturer) AB" 
    UpgradeCode="[GUID]" 
    Codepage="1252" 
> 

Notez la page de code 1252.

Lorsque j'installe et que l'ancienne version est installée sur la machine, je trouve la clé dans le registre et le programme d'installation va me montrer le message. Si je supprime l'ancienne version je peux voir la clé de registre disparaître mais le programme d'installation me montrera toujours le message et quittera. J'ai essayé de redémarrer (vous ne savez jamais) en vain. Je n'ai plus d'idées ... des pensées?

+0

Que dit le journal détaillé? –

+0

Créez un journal d'installation pour plus de détails. Ma conjecture est que cette propriété est en quelque sorte définie. – Ciprian

+0

L'installateur de Wise était-il également un MSI? (La clé que vous citez suggère que ce n'était pas le cas.) Mais si c'était le cas, vous pouvez probablement utiliser des mises à niveau pour trouver le précédent. –

Répondre

1

Il s'avère que la recherche de registre renvoie 1 si la clé n'est pas trouvée. Alors j'ai changé

OLDKEY 

Pour

<![CDATA[OLDKEY <> 1]]> 

Et il a été fixé.

Questions connexes